2010-07-17 65 views
0

我有一個簡單的vb.net窗體tabpanel帶,然後爲tabpage加載一個單獨的窗體。vb.net tabpage使用tabpanels問題的窗體

下面是按鈕的代碼,動態地創建新的選項卡:

Dim tempTab As New TabPage 
    initTab(tempTab) 
    xt.TabPages.Add(tempTab) 
    xt.SelectedIndex = xt.TabCount - 1 

下面是「inittab中」的代碼:

Dim tmpTab As New MainTab 
    tmpTab.Dock = DockStyle.Fill 
    tmpTab.Panel1.Dock = DockStyle.Fill 
    tab.Controls.Add(tmpTab) 
    tab.Text = "Untitled" 
    tab.Name = " " 

我可以輕鬆地設置任意標籤的焦點通過輸入以下設置焦點,例如最後一個選項卡:

xt.SelectedIndex = xt.TabCount - 1 

現在的問題是,我如何將焦點設置到自定義窗體上的文本框(在我的示例中標記爲「MainTab」)?我嘗試過幾乎所有我可以谷歌,我似乎無法找到任何示例如何setfocus甚至設置/從MainTab形式獲取任何東西。

任何人都可以幫到我嗎?

回答

0

呃,把一個窗體變成一個孩子控件需要一些手術。您必須將其TopLevel屬性設置爲false,隱藏邊框並使其可見。我沒有在代碼片段中看到它,MainTab實際上是一個表單嗎?

Anyhoo,您不能在控件上使用Focus()方法,直到它可見爲止。在您的代碼片段中,它不可見的機率很好。改用Select()方法。說:

tmpTab.TextBox1.Select() 

或者只是設置第一個控件的TabIndex屬性,應該在設計器中將焦點設置爲0。

+0

select屬性解決了問題,你是對的,控件不可見 – Joe 2010-07-17 23:59:49

0

xt.Controls(xt.SelectedIndex).Controls(「TEXTBOXNAME」)。對焦()

只要確保你設置你想要有焦點(在這種情況下,名稱文本框中的名稱屬性會是TEXTBOXNAME)如果你這樣做。