2010-09-17 4 views
2

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

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

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

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

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

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

+1

TabPage textBox1.Text = new TabPage(); не имеет никакого смысла. Вы имеете в виду TabPage newpage = new TabPage {Name = textBox1.Text}; ? – MerickOWA

+0

Я знаю TabPage textBox1.Text = new TabPage() не имеет смысла вообще, thats идея so sayign, если textBox1.Text = "Test", он будет выводить оператор будет TabPage Test = new TabPage(); ... I нужно создать tabPage с именем textBox – Alex

ответ

4

Сделать это выглядит примерно так:

 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(); 
+0

Это создало tabPage, но на самом деле не выбрало вкладку – Alex

+0

@Alex: вы хотите tabControl1.SelectedTab = page; – w69rdy

+0

Похоже, что сработало, я думаю, что это то, что мне нужно, но мне нужно будет немного поработать ... Спасибо, ребята! – Alex

0

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

Это в основном то, на что я оказался похож.

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; 
+1

Используйте переменные или поля, чтобы удерживать ссылку на объект, который вы хотите адресовать позже. Чувак, это очень простой материал. Посмотрите на некоторые учебные пособия. Класс C#: http://msdn.microsoft.com/en-us/library/0b0thckt(v=VS.100).aspx –

+0

Причина, по которой я спрашиваю, потому что, если я попробую что-то вроде MessageBox.Show (mainTabControl. SelectedTab.Name.ToString()); Это пустая строка, поэтому я не вижу, как я могу позвонить этой вкладке позже на – Alex

+0

Это потому, что вы не назначаете имя новому элементу управления вкладкой, вы назначаете только текст. Чтобы mainTabControl.SelectedTab.Name возвращал что-либо, вы должны иметь tabPageName.Name = textBox1.Text; – kevev22