左边一个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里一切正常
另如有其它方法还请赐教

解决方案 »

  1.   

    你把FrmShangpinAdd 的FormBorderStyle设为None就好了,但是不知道合不合你的要求
      

  2.   

    FrmShangpinAdd用UserControl代替如:Public Class Form1    Private WithEvents tree As TreeView
        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
      

  3.   

    zx005与wzuomin,都可以,不过我想要的是带标题栏的那种,有没有解决方案
      

  4.   

    设置主窗体的IsMDIContainer属性为True,
    那么在主窗体创建子窗体的时候:FrmShangpinAdd tempForm = new FrmShangpinAdd();
    tempForm.MDIParent = this;
    tempForm.Show();
      

  5.   

    这个只能tempForm.MDIParent = this;
    而不能tempForm.MDIParent = this.panel1;
      

  6.   

    .net winform 左边TreeView右边放窗体,之间有个可拖动的竖条。 - 柳永法(yongfa365)'Blog