c#窗体控件大小设置
我的c#窗体程序有toolStrip(上面),tabControl(左边)和richtextbox(右下角),有点像ppt的形式,想要达到的效果是窗体最大化时控件随之变大,通过设置Dock和Anchor属性,toolStrip没有问题,可是tabControl和richtextbox死活变不了
Dock设成fill时,Anchor就自动变成top和left了,修改Anchor后Dock有自动成none了。。。。!!!
其他的组合我也全部试了就是不行?!为什么啊?!
[解决办法]
在客户区放一个TableLayoutPanel,Dock设置为fill
然后让这个TabLayoutPanel为1行2列,在左边放入TabControl,右边放入RichTextBox,分别Dock为Fill。
[解决办法]
+1
[解决办法]
Dock和Anchor本来就不能同时设置,设置其中一个,另一个自动变成默认值
[解决办法]
2L的办法应该改为2行2列,左边一列合并,这样才能实现richtextbox(右下角)的需求
[解决办法]
这个不知道对你是否有用,可以看一下:http://my.csdn.net/xuezhe521/code/detail/19893
算了,我还是贴代码吧
分三步:
1.控件必须放在一个panel中(可能其他也行,没试。。。);
2.from类中添加一个函数,并添加form的sizechanged事件,如下:
public void AutoResize(Form frm)
{
frm.Tag = frm.Width.ToString() + "," + frm.Height.ToString();
frm.SizeChanged += new EventHandler(Form1_SizeChanged);
}
事件如下:
private void Form1_SizeChanged(object sender, EventArgs e)
{
string[] tmp = ((Form)sender).Tag.ToString().Split(',');
float width = (float)((Form)sender).Width / (float)Convert.ToInt16(tmp[0]);
float heigth = (float)((Form)sender).Height / (float)Convert.ToInt16(tmp[1]);
((Form)sender).Tag = ((Form)sender).Width.ToString() + "," + ((Form)sender).Height;
foreach (Control control in ((Form)sender).Controls)
{
control.Scale(new SizeF(width, heigth));
}
}
3.在构造函数中调用AutoResize函数,如下:
public Form1()
{
InitializeComponent();
AutoResize(this);//函数调用
}
[解决办法]
panel 然后fill