对于普通form窗体中的控件布局基本上都可以用Dock和Anchor来定位。
但是我在向panel中动态加入一个usercontrol时,这个usercontrol中的控件就不能按照其在usercontrol中设置的anchor属性来定位。
具体代码如下:
usercontrol:
其中有两个控件:一个是textbox,一个是button。它们的设置如下:
this.button1.Anchor = AnchorStyles.Bottom | AnchorStyles.Right;
//button的anchor是右下,textbox的anchor按默认的左上。
this.Controls.Add(this.textBox1);
this.Controls.Add(this.button1);包括usercontrol的窗体:
布局是这样的,左边是一个treeview,其dock属性为left,再加一个spliter,其dock属性同样为left,然后再加一个panel,其dock属性为fill。
我是想在panel中动态加入不同的usercontrol。作为测试,我在窗体的构造函数中加入:
TestingUserControl userControl = new TestingUserControl();
userControl.Dock = DockStyle.Fill;
userControl.Anchor = AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Top;
this.panel1.Controls.Add(new TestingUserControl());运行示例,当我改变窗体大小的时候,usercontrol中的textbox和button,不会根据其anchor属性,自适应其位置。这个问题,还请各位指教!!!
但是我在向panel中动态加入一个usercontrol时,这个usercontrol中的控件就不能按照其在usercontrol中设置的anchor属性来定位。
具体代码如下:
usercontrol:
其中有两个控件:一个是textbox,一个是button。它们的设置如下:
this.button1.Anchor = AnchorStyles.Bottom | AnchorStyles.Right;
//button的anchor是右下,textbox的anchor按默认的左上。
this.Controls.Add(this.textBox1);
this.Controls.Add(this.button1);包括usercontrol的窗体:
布局是这样的,左边是一个treeview,其dock属性为left,再加一个spliter,其dock属性同样为left,然后再加一个panel,其dock属性为fill。
我是想在panel中动态加入不同的usercontrol。作为测试,我在窗体的构造函数中加入:
TestingUserControl userControl = new TestingUserControl();
userControl.Dock = DockStyle.Fill;
userControl.Anchor = AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Top;
this.panel1.Controls.Add(new TestingUserControl());运行示例,当我改变窗体大小的时候,usercontrol中的textbox和button,不会根据其anchor属性,自适应其位置。这个问题,还请各位指教!!!
解决方案 »
- mvc3跳转控制器如何写
- .NET系统中WEB服务器上文件的读取操作问题
- 关于WCF的简单问题:
- 如何在ASP.NET的工程文件中得到设计窗口中的source里的javascript的对象
- C# 路径合法性校验
- GO跳转页面按钮俩小问题......急!!!谢谢各位!
- 十万火急,在线等,第一次用水晶报表,关于加载报表失败!!!!
- 我公司(在深圳)現想請.net高手來講課,請有意的朋友留下msn號,我們會和您聯繫.
- 在学习window下的UserControl的编程,就是怎样用现成的控件组合成自己想要的控件。。。。
- 请教public调用问题
- Managed DirectX 9.0 SDK 文档中文译本现已发布
- 上海c#程序员价格
userControl.Dock = DockStyle.Fill;
userControl.Anchor = AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Top;
this.panel1.Controls.Add(new TestingUserControl());-----------------------
userControl.Dock = DockStyle.Fill;
userControl.Anchor = AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Top;//这个代码就无效了,因为你前面已经
DockStyle.Fill
this.panel1.Controls.Add(new TestingUserControl());//?????
this.panel1.Controls.Add(userControl);
this.panel1.Controls.Add(new TestingUserControl());//?????
this.panel1.Controls.Add(userControl);还请问各位,如何让各输入控件,如textbox,按照其大小,根据其容器的大小,按比例伸缩。这个问题,有没有什么好的解决方法?