【问题】
想要使得一个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.后来参考:
C#里WinForm开发中如何实现控件随窗体大小的改变而自动适应其改变
得知了那个Anchor,然后去试了试:
原先是没有右边和下面的:
设置了后:
然后去运行,当窗体改变时,果然右边(和下面)都会自动缩放大小的:
所以,再去设置其他的,对应的DatagridView和其父级的groubox,都设置为对应的部分的anchor值:
当改变窗体大小后,也可以自动缩放了:
【总结】
就是去设置窗体中的控件属性中的anchor,然后就可以达到所要的效果了:
当窗体大小改变时,自动缩放控件的大小,具体如何缩放,由你的anchor值决定。
转载请注明:在路上 » 【已解决】C#中使得控件随着WinForm窗体的大小改变而自动变化