C# 当子控件在小分辨率屏幕上被切断时,如何使其重新锚定到其父窗体?
我有一个默认大小为C# 当子控件在小分辨率屏幕上被切断时,如何使其重新锚定到其父窗体?,c#,winforms,C#,Winforms,我有一个默认大小为1100x400的Windows窗体,上面有一个DataGridView控件,该控件锚定在顶部,左侧,底部,右侧 在分辨率高于1100x400的屏幕上调整窗体的大小工作正常,锚定工作正常,可以按预期调整DataGridView控件的大小 当我在分辨率为800x600的屏幕上启动表单时,表单被切断,并使其适合800x600。DataGridView被切断,无法完全看到-它从表单右侧流出,因此不考虑正确的锚定。由于某些原因,在这种情况下调整窗体的大小不符合锚定设置:DataGrid
1100x400
的Windows窗体,上面有一个DataGridView
控件,该控件锚定在顶部
,左侧
,底部
,右侧
在分辨率高于1100x400
的屏幕上调整窗体的大小工作正常,锚定工作正常,可以按预期调整DataGridView
控件的大小
当我在分辨率为800x600
的屏幕上启动表单时,表单被切断,并使其适合800x600
。DataGridView
被切断,无法完全看到-它从表单右侧流出,因此不考虑正确的锚定。由于某些原因,在这种情况下调整窗体的大小不符合锚定设置:DataGridView
控件在调整窗体大小时不调整大小
是否有一种编程方式(在调整大小事件或其他事件上)强制子DataGridView
控件锚定到窗体的侧面
我已经尝试过调用
PerformLayout
并在表单的调整大小事件中刷新,但这是相当多余的,不是吗?我建议您使用表单和控件的最小大小/最大大小
当我们至少可以看到每个控件的一小部分时,我们通常将窗体和控件的最小大小设置为值。如果无法使用窗体上的控件执行任何有用的操作,则不允许将窗体大小调整为该大小
至于表单的最大大小-我建议您尝试将表单加载上的该值设置为小于或等于当前屏幕分辨率或当前工作区域(即没有任务栏、停靠窗口等的屏幕区域)
>>我已经尝试在表单的resize事件中调用PerformLayout和Refresh,但这是相当多余的,不是吗?这似乎是一个愚蠢的问题,但是是否为控件的最小宽度设置了任何内容?(我不在开发区,所以我无法检查您是否可以对DataGridView执行此操作,所以如果我正在考虑其他UI框架,请忽略我。)
see
Screen.PrimaryScreen.Bounds
Screen.PrimaryScreen.WorkingArea