c# groupbox大小_【已解决】C#中使得控件随着WinForm窗体的大小改变而自动变化
【问题】
想要使得一个C#中的一个窗体中的控件,DataGridView,自动随着WinForm窗体变化而变化,即:
中的显示数据的灰色部分,
另外还有上面那个“2.actions”,是个groupbox,也希望横向宽度随着窗体变化而变化。
目前是无法自动变化的:
【解决过程】
1.之前就知道,winform有些时间的,适合大小变化有关的,后来找到了:
也是试了试一些代码,比如:private void frmfiverrcomscraper_resizeend(object sender, eventargs e)
{
grbsearchresult.width = grbsearchresult.width + this.size.width - oldsearchresultgroupboxsize.width;
}
private void frmfiverrcomscraper_resizebegin(object sender, eventargs e)
{
oldsearchresultgroupboxsize = grbsearchresult.size;
}
private void frmfiverrcomscraper_sizechanged(object sender, eventargs e)
{
}
但是结果都不理想。
比如,对于resizeend和resizebegin组合使用,只能捕获到,手动拖动窗体变化的事件,而对于点击最大化按钮 的情况,无法捕获到,搞得需要另外再去实现最大化按钮被按了后,各个控件的大小再去调整,很是麻烦。
2.后来参考:
得知了那个Anchor,然后去试了试:
原先是没有右边和下面的:
设置了后:
然后去运行,当窗体改变时,果然右边(和下面)都会自动缩放大小的:
所以,再去设置其他的,对应的DatagridView和其父级的groubox,都设置为对应的部分的anchor值:
当改变窗体大小后,也可以自动缩放了:
【总结】
就是去设置窗体中的控件属性中的anchor,然后就可以达到所要的效果了:
当窗体大小改变时,自动缩放控件的大小,具体如何缩放,由你的anchor值决定。