You can reduce your code a bit.
tabControlEx1.TabPages[k].Controls.Clear();
FlowLayoutPanel flp = new FlowLayoutPanel();
flp.Dock = DockStyle.Fill;
CalculateTotalPagesSms(DataTable);
Button btnFirstSms = CreateButtons(totalpagesSms,"First");
btnFirstSms.Click += new EventHandler(btnFirstSms_Click);
Button btnNextSms = CreateButtons(totalpagesSms, "Next");
btnNextSms.Click += new EventHandler(btnNextSms_Click);
Button btnLastSms = CreateButtons(totalpagesSms, "Last");
btnLastSms.Click += new EventHandler(btnLastSms_Click);
Button btnPrevSms = CreateButtons(totalpagesSms, "Previous");
btnPrevSms.Click += new EventHandler(btnPrevSms_Click);
lblMessageSms = new Label();
lblMessageSms.Dock = DockStyle.Fill;
lblMessageSms.Font = new Font(lblMessageSms.Font, FontStyle.Bold);
lblMessageSms.ForeColor = Color.Black;
lblMessageSms.Visible = totalpagesSms > 1;
lblMessageSms.Width = 600;
SplitContainer sc = new SplitContainer();
sc.Orientation = Orientation.Horizontal;
sc.Dock = DockStyle.Fill;
sc.FixedPanel = System.Windows.Forms.FixedPanel.Panel2;
sc.IsSplitterFixed = true;
sc.SplitterDistance = 20;
sc.Panel1.Controls.Add(dgSMS);
flp.Controls.Add(lblMessageSms);
flp.SetFlowBreak(lblMessageSms, true);
flp.Controls.Add(btnFirstSms);
flp.Controls.Add(btnNextSms);
flp.Controls.Add(btnPrevSms);
flp.Controls.Add(btnLastSms);
sc.Panel2.Controls.Add(flp);
DataGridView.DataSource = GetCurrentRecordsSms(DataTable, cpisms, PageSize);
tabControlEx1.TabPages[k].Controls.Add(sc);
private Button CreateButtons(int totalPageSms, string text)
{
Button btn = new Button();
btn.Text = text;
btn.Font = new Font(btn.Font, FontStyle.Bold);
btn.Height = 32;
btn.Visible = totalPageSms > 1;
return btn;
}