C # динамически добавлять текст в tabcontrol - PullRequest
0 голосов
/ 17 июля 2009

Возникла небольшая проблема в C #, все еще довольно плохо знакомая с языком, но надеюсь, что вы поможете. У меня есть программа, которая динамически создает формы вкладок, а затем я пытаюсь добавить элементы управления в форму табуляции (текстовые поля и метки), но, что бы я ни пытался, просто не похоже, что это сработает. Вот код, который я сейчас использую (просто чтобы получить одно текстовое поле в каждой форме):

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 ]

1 голос
/ 17 июля 2009

РЕДАКТИРОВАТЬ: Doh! Понял!

Вы не добавляете новую TabPage, которую создаете. Эта строка:

tcNewCustomer.TabPages.Add(dogname);

должно быть так:

tcNewCustomer.TabPages.Add(newpage);

(Небольшое тестовое приложение показывает страницы вкладок, созданные без каких-либо текстовых полей с первой версией, но со второй версией работает нормально.)


С первого взгляда все в порядке (хотя я и не пробовал - поможет короткая, но полная демонстрационная программа). Когда вы говорите, что «просто не хотите работать» - что именно происходит?

Вы пытались немного сдвинуть локацию? Я знаю, что некоторые элементы управления нечетны с точки зрения того, где находится их логическая «вершина» (то есть это не первый видимый пиксель).

0 голосов
/ 17 июля 2009

Как насчет настройки текста в текстовом поле? В настоящее время вы просто устанавливаете имя ...

Хотя я все еще ожидаю, что вы увидите рамку на рамке + цвет фона, если он отличается от фона вкладки.

...