日期:2014-05-20  浏览次数:20757 次

winform获得焦点问题。查询后未能解决!!!高分求解
我的程序是这样的,主form上一个splitContainer分为左右两边。左边方了一个treeView,右边空的。我点击一个button实现新form的实例化。
点击事件
                        select   s1   =   new   select();
                        s1.Name   =   System.DateTime.Now.ToString();
                        s1.Text   =   System.DateTime.Now.ToString();
                        s1.TopLevel   =   false;
                       
                        this.splitContainer1.Panel2.Controls.Add(s1);
                        s1.Parent   =   this.splitContainer1.Panel2;
                       
                        s1.TopMost   =   true;
                        s1.Show();
                        s1.Activate();
现在这段代码运行没有问题,可是在panel2中s1始终不能获得焦点。
我用splitContainer1的主要目的是可以调节两边区域的大小。

请大虾帮我想想办法解决一下。(1、尽量获得焦点。2、使用其他容器也可以用户控制划分两边的大小。)
类似SQL的查询分析器的效果。

------解决方案--------------------
赞同hbxtlhx(平民百姓)
你可以在button的click事件中加上
Form f = new Form();
f.MdiParent = this;
mdiClient.Controls.Add(f);
f.Visible = true;

------解决方案--------------------
你这应该用MDI子窗体来做。
------解决方案--------------------
你要做成查询分析器的效果啊,这好说啊,你不要用splitContainer1这个控件,而是直接把TreeView控件加入Mdi主窗体,设置Dock为Left显示,再添加一个splitter,Dock也是设置为Left,这样运行程序试试看左边的子窗体是不是有焦点了,是不是像查询分析器了?

记得不能用splitContainer1,把它去掉,直接加Treeview及splitter