就像標題所說,我有一個Child窗體被顯示,它的TopLevel屬性設置爲False,我無法點擊它的MaskedTextBox控件包含(爲了把重點放在它上面)。我可以通過在鍵盤上使用TAB來關注它。Windows窗體:無法點擊以將MaskedTextBox聚焦到非頂級窗體
子窗體包含其他常規的TextBox控件,這些我可以單擊來關注沒有問題,雖然它們也表現出一些奇怪的行爲:例如,如果我在文本框中有一個值,並且嘗試拖動單擊從字符串的末尾開始,沒有任何反應。事實上,我無法使用我的鼠標在TextBox的文本內移動光標(儘管它們的鍵盤箭頭鍵可以工作)。
我並不太擔心奇怪的TextBox行爲,但爲什麼我不能通過單擊它來激活我的MaskedTextBox?
下面是顯示窗體的代碼:
Dim newReportForm As New Form
Dim formName As String
Dim FullTypeName As String
Dim FormInstanceType As Type
formName = TreeView1.SelectedNode.Name
FullTypeName = Application.ProductName & "." & formName
FormInstanceType = Type.GetType(FullTypeName, True, True)
newReportForm = CType(Activator.CreateInstance(FormInstanceType), Form)
Try
newReportForm.Top = CType(SplitContainer1.Panel2.Controls(0), Form).Top + 25
newReportForm.Left = CType(SplitContainer1.Panel2.Controls(0), Form).Left + 25
Catch
End Try
newReportForm.TopLevel = False
newReportForm.Parent = SplitContainer1.Panel2
newReportForm.BringToFront()
newReportForm.Show()
你是對的,這些建議都解決了這個問題。但它以我們不想要的方式顯示錶單。真的,我們想要做的是在SplitContainer面板中顯示這個表單(modelessley)(這樣表單不能在這個splitcontainer面板之外拖動)。 在這一點上,我相當肯定我們正在以錯誤的方式去解決問題,我們需要調整我們如何顯示錶單。 非常感謝您的全力幫助。 – Overhed 2010-06-21 15:47:35