.net winform 左边TreeView右边放窗体,之间有个可拖动的竖条。
点击左边的TreeView的Node 时,关闭右边的所有窗体,然后打开需要的窗体,
方法:
设置主窗体的IsMdiContainer = true;
拖过来一个TreeView,设置Dock为left
在 工具箱-->所有Windows窗体 里拖出一个 Splitter(不是SplitContainer) 来放到TreeView的右边
OK框架挡好,开始编码:
private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
if (e.Node.Name == "系统参数")
{
Form frm = new Form2();
frm.MdiParent = this;
frm.WindowState = FormWindowState.Maximized;
frm.Dock = DockStyle.Fill;
frm.FormBorderStyle = FormBorderStyle.None;
frm.Show();
}
}
==========================================
以上不使用SplitContainer的原因是因为:
右边的窗体里的文本框textbox没法用鼠标定位,很不爽,有一种方法可以,就是:
把FrmShangpinAdd 的FormBorderStyle设为None就完全可以了,只是没有了标题栏,而我还想要它。
==========================================
SplitContainer右侧里的窗体里的textbox里的内容没法用光标定位
这个问题我在csdn上提问过两次,基本上是一年一次,呵呵 :
http://topic.csdn.net/u/20090505/13/e2bc0736-3f2e-4986-ba14-02947da8bd77.html
http://topic.csdn.net/u/20081029/09/ad8c8f75-a016-4892-a0f0-b44d1c301cb6.html
左边一个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控件里没法用鼠标定位光标位置,只能用键盘向左或向右移动操作,怎么解决
把FrmShangpinAdd 的FormBorderStyle设为None就完全可以了,只是没有了标题栏,而我还想要它,
总体来说要实现的就是:
一个窗体分为左右两部分,左边放一个tree,点击时在右边打开相应窗体,这个窗体跟正常窗体一样就可以了,
不知道怎么实现
引用:
.net winform 左边TreeView右边放窗体,之间有个可拖动的竖条。http://www.yongfa365.com/item/Winform-LayOut.html