左边一个TreeView,右边一个panel1
点击TreeView时,把相应的窗体显示在panel1里这样操作以后:this.panel1.Controls.Clear();
FrmShangpinAdd tempForm = new FrmShangpinAdd();
tempForm.TopLevel = false;
tempForm.Parent = this.panel1;
tempForm.Dock = DockStyle.Fill;
tempForm.Show();可以实现,但FrmShangpinAdd窗体里的TextBox控件里没法用鼠标定位光标位置,只能用键盘向左或向右移动操作,怎么解决?
还有,这个窗体如果不放在那个panel1里一切正常
另如有其它方法还请赐教
点击TreeView时,把相应的窗体显示在panel1里这样操作以后:this.panel1.Controls.Clear();
FrmShangpinAdd tempForm = new FrmShangpinAdd();
tempForm.TopLevel = false;
tempForm.Parent = this.panel1;
tempForm.Dock = DockStyle.Fill;
tempForm.Show();可以实现,但FrmShangpinAdd窗体里的TextBox控件里没法用鼠标定位光标位置,只能用键盘向左或向右移动操作,怎么解决?
还有,这个窗体如果不放在那个panel1里一切正常
另如有其它方法还请赐教
Private panel As Panel Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
panel = New Panel
panel.BorderStyle = BorderStyle.Fixed3D
panel.Dock = DockStyle.Fill
Me.Controls.Add(panel) tree = New TreeView
tree.Nodes.Add("Node1")
tree.Nodes.Add("Node2")
tree.Dock = DockStyle.Left
Me.Controls.Add(tree)
End Sub Private Sub tree_AfterSelect(ByVal sender As Object, ByVal e As System.Windows.Forms.TreeViewEventArgs) Handles tree.AfterSelect
panel.Controls.Clear()
Select Case e.Node.Text
Case "Node1"
Dim frm As New MyForm
frm.TopLevel = False
frm.Parent = panel
frm.Dock = DockStyle.Fill
frm.Show()
Case "Node2"
Dim NewControl As New MyUserControl
NewControl.Dock = DockStyle.Fill
panel.Controls.Add(NewControl)
NewControl.Visible = True
End Select
End Sub Private Class MyUserControl
Inherits UserControl Public Sub New()
Dim txtBox As New TextBox
txtBox.Dock = DockStyle.Top
txtBox.Text = "Test"
txtBox.Visible = True
Me.Controls.Add(txtBox)
End Sub
End Class Private Class MyForm
Inherits Form Public Sub New()
Dim txtBox As New TextBox
txtBox.Dock = DockStyle.Top
txtBox.Text = "Test"
txtBox.Visible = True
Me.Controls.Add(txtBox)
End Sub
End ClassEnd Class
那么在主窗体创建子窗体的时候:FrmShangpinAdd tempForm = new FrmShangpinAdd();
tempForm.MDIParent = this;
tempForm.Show();
而不能tempForm.MDIParent = this.panel1;