根据用户在文本框中输入的数字,我想创建包含gridview和textboxes的标签页。+动态创建标签页
现在,当用户更改要显示的号码时,我将删除并重新添加所有标签页。
如何更改代码以便我只需添加/删除标签页中的区别?
private DataGridView[] rtb = new DataGridView[100];
private TabPage[] tab = new TabPage[100];
DataGridViewComboBoxColumn comp;
public void ctp(Int32 textbox)
{
try
{
if (textbox > 10)
{
MessageBox.Show("You Exceed Limit");
}
else
{
int k = 0;
int s = 0;
k = Convert.ToInt32(textBox1.Text);
for (int i = 0; i < k; i++)
{
tab[i] = new TabPage();
//Start Gridview
rtb[i] = new System.Windows.Forms.DataGridView();
rtb[i].Location = new System.Drawing.Point(0, 50);
rtb[i].Size = new System.Drawing.Size(1020, 150);
//ID Column
rtb[i].Columns.Add("tr_id", "ID");
rtb[i].Columns["tr_id"].ReadOnly = true;
rtb[i].Columns["tr_id"].Width = 1;
// Color Column
comp = new DataGridViewComboBoxColumn();
comp.HeaderText = "Color No";
//comp[i].DataPropertyName = "Color No";
comp.Width = 200;
comp.Name = "color_no";
comp.DisplayStyle = DataGridViewComboBoxDisplayStyle.Nothing;
//comp[i].ReadOnly = false;
rtb[i].Columns.Add(comp);
//Quantity Column
rtb[i].Columns.Add("quantity", "Quantity");
//Piece Weight Column
rtb[i].Columns.Add("piece_weight", "Piece Weight");
//Total Weight Carton
rtb[i].Columns.Add("total_weight", "Total Weight");
//Piece in Carton Column
rtb[i].Columns.Add("pcs_carton", "Pcs/Carton");
//No Of Carton Column
rtb[i].Columns.Add("no_of_carton", "Total Cartons");
//Unit Name Column
rtb[i].Columns.Add("unit_name", "Unit Name");
//Rate Column
rtb[i].Columns.Add("rate", "Rate");
//Amount Column
rtb[i].Columns.Add("amount", "Amount");
//Ship Qty Column
rtb[i].Columns.Add("ship_qty", "Ship Qty.");
//kdnr column
rtb[i].Columns.Add("kdnr", "KDNR");
//reference No Column
rtb[i].Columns.Add("ref_no", "Reference No.");
DataGridViewCheckBoxColumn checkColumn = new DataGridViewCheckBoxColumn();
checkColumn.Name = "deleterow";
checkColumn.HeaderText = "Delete Row";
checkColumn.Width = 50;
checkColumn.ReadOnly = false;
checkColumn.FillWeight = 10; //if the datagridview is resized (on form resize) the checkbox won't take up too much; value is relative to the other columns' fill values
rtb[i].Columns.Add(checkColumn);
tab[i].Controls.Add(rtb[i]);
tab[i].Location = new System.Drawing.Point(4, 22);
tab[i].Name = "tab" + i.ToString();
tab[i].Padding = new System.Windows.Forms.Padding(3);
tab[i].Size = new System.Drawing.Size(400, 242);
tab[i].Text = "Article" + i.ToString();
tab[i].UseVisualStyleBackColor = true;
tabControl2.TabPages.Add(tab[i]);
//MessageBox.Show(""+tab[i].Text);
}
}
}
catch (Exception ex)
{
throw ex;
}
}
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
#region Calling Create TabPage Function
try
{
if (e.KeyCode == Keys.Enter)
{
Int32 textbox = Convert.ToInt32(textBox1.Text);
ctp(textbox);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
#endregion
}
嗨!你的问题很难理解。我是否正确,当我想你想输入要显示在文本框中的标签数量? – wonko79
是因为这个输入在db – user2491383
但他想要3而他把2放到下一次他想要另外1个所以从来没有删除以前的数据再加上可是这样输入第一次2秒他就这样放3 – user2491383