Как динамически создавать вкладки

Это на С#

Мне нужно в основном сделать TabPages из textbox.Text, например:

textBox1.Text = "test";
TabPage textBox1.Text = new TabPage();

Это то, что я хочу сделать ... я знаю, что это не будет работать напрямую, но это должно дать вам представление о том, как я хочу создать вкладки ... тогда я хочу иметь возможность вызывать их позже, например, :

String browser = "browser 1";
(textBox1.Text as TabPage).Controls.Add(WebBrowser browser)

Мне нужно, чтобы все имена были динамическими, потому что это будет программа, которая может запускать тесты для учетных записей клиентов. Будет TabControl, который имеет «Номер учетной записи» в качестве имени элемента управления tabPage, а затем внутри каждой из этих tabPages будет еще один TabControl с настройкой вкладок с каждым отдельным тестом на своей вкладке.Так что вкладки внутри вкладок в основном.


person Alex    schedule 17.09.2010    source источник
comment
TabPage textBox1.Text = новая TabPage(); не имеет никакого смысла. Вы имеете в виду TabPage newpage = new TabPage { Name = textBox1.Text }; ?   -  person MerickOWA    schedule 17.09.2010
comment
Я знаю, что TabPage textBox1.Text = new TabPage() вообще не имеет смысла, это идея, поэтому скажите, если textBox1.Text = Test, это будет означать, что оператор будет TabPage Test = new TabPage();... Мне нужна tabPage быть созданным с именем textBox   -  person Alex    schedule 17.09.2010


Ответы (2)


Сделайте это похожим на это:

        var page = new TabPage(textBox1.Text);
        var browser = new WebBrowser();
        browser.Dock = DockStyle.Fill;
        page.Controls.Add(browser);
        tabControl1.TabPages.Add(page);
        browser.Navigate("http://stackoverflow.com");
        page.Select();
person Hans Passant    schedule 17.09.2010
comment
Это создало tabPage, но на самом деле не выбрало вкладку - person Alex; 17.09.2010
comment
@Alex: вам нужна tabControl1.SelectedTab = page; - person Iain Ward; 17.09.2010
comment
Похоже, это сработало, я думаю, это то, что мне нужно, но мне нужно немного поработать... Спасибо, ребята! - person Alex; 17.09.2010

На самом деле я хочу знать еще одну вещь: как я могу вызвать эту вкладку @ в другой раз вне этой функции?

Примерно так я и выглядел.

String browserName = "Test Check";
var tabPageName = new TabPage(textBox1.Text);
var tabPageBrowser = new TabPage(browserName);
var tabPageTabControl = new TabControl();
var browser = new WebBrowser();
tabPageName.Controls.Add(tabPageTabControl);
tabPageTabControl.TabPages.Add(tabPageBrowser);
tabPageBrowser.Controls.Add(browser);
mainTabControl.TabPages.Add(tabPageName);
mainTabControl.SelectedTab = tabPageName;
person Alex    schedule 17.09.2010
comment
Используйте переменные или поля для хранения ссылки на объект, к которому вы хотите обратиться позже. Чувак, это очень простые вещи. Взгляните на некоторые учебники. Класс С#: msdn.microsoft.com/en- us/library/0b0thckt(v=VS.100).aspx - person Matthew Perron; 17.09.2010
comment
Причина, по которой я спрашиваю, заключается в том, что если я попробую что-то вроде MessageBox.Show(mainTabControl.SelectedTab.Name.ToString()); Он отображается пустым, поэтому я не понимаю, как я могу вызвать эту вкладку позже. - person Alex; 17.09.2010
comment
Это потому, что вы не назначаете имя элементу управления новой вкладкой, вы назначаете только текст. Для того, чтобы mainTabControl.SelectedTab.Name что-либо возвращало, вы должны иметь tabPageName.Name = textBox1.Text; - person kevev22; 17.09.2010
comment
не берите в голову, у меня был мозг... tabPageName.Name = textBox1.Text; - person Alex; 17.09.2010