C#动态地将文本添加到tabcontrol

时间:2009-07-17 08:59:29

标签: c# winforms controls textbox

在C#上遇到一些问题,对语言来说仍然很新,但希望你能提供帮助。我有一个程序,动态创建选项卡表单,然后我试图添加控件到tabform(文本框和标签),但无论我尝试它只是似乎不想工作。这是我正在使用的代码(只是为了在每种形式中获得一个文本框):

int i = dogresults;
while (i > 0)
{
    i--;
    DataRow dogrow = ds1.Tables["confirmdogs"].Rows[i];
    string dogname = dogrow.ItemArray.GetValue(3).ToString();
    TabPage newpage = new TabPage(dogname);
    tcNewCustomer.TabPages.Add(dogname);

    TextBox tb1 = new TextBox();
    tb1.Location = new Point(20, 10);
    newpage.Controls.Add(tb1);
    tb1.Name = "txtDogNo" + i;
}

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:1)

编辑:Doh!明白了!

您没有添加您正在创建的新TabPage。这一行:

tcNewCustomer.TabPages.Add(dogname);

应该是这样的:

tcNewCustomer.TabPages.Add(newpage);

(一个小的测试应用程序显示创建的标签页没有任何带有第一个版本的文本框,但第二个版本正常工作。)


一目了然(虽然我没有尝试过 - 一个简短但完整的演示程序会有所帮助)。当你说它“似乎不想工作”时 - 到底发生了什么?

您是否尝试过将位置向下移动一下?我知道有些控件在逻辑“顶部”的位置是奇数(即它不是第一个可见像素)。

答案 1 :(得分:0)

如何在文本框中设置文本?目前你只是设置名称......

虽然我仍然希望你看到方框+背景颜色的边框,假设它与标签页背景不同。