如何在窗体调整大小时调整datagridview控件的大小

low*_*key 37 c# resize datagridview winforms

当孩子控件调整大小时,我发现了很多关于如何调整表单大小的问题,但我正在尝试做一些更简单的事情(也许这么简单的人甚至不会问它:|)

我想自动调整datagridview的宽度以填充表单的宽度.简单地将datagridview放在表单上后,在调整表单大小时,网格保持相同的大小.即使我使用将控件连接到表单边框的小恒定距离快照事件,也会发生这种情况.

我是否必须处理某些类型的form.resize事件,或者是否可以在VS中设置属性?

Sam*_*ich 46

使用控制锚定.设置属性Anchor您的GridViewTop, Left, Right,它会与容器调整.如果您GridView被放置在某个容器(ex Panel)内,那么也Panel应该固定.


小智 22

设置DataGridView的属性:

Anchor: Top,Left
AutoSizeColumn: Fill
Dock: Fill
Run Code Online (Sandbox Code Playgroud)

  • 最好还至少给出一个简短的解释,说明它是如何工作的,这样人们就不必逐行进行精神上的解析来理解差异. (5认同)

hmq*_*esy 10

将控件的anchor属性设置为挂钩到父级的所有边 - 顶部,底部,左侧和右侧.


小智 6

'Anchor' 属性适用于任何容器:表单、面板、组框等。

您可以选择 1 边(例如左侧)或最多所有四边。

锚点意味着所选边与容器边缘之间的距离将保持不变,即使在调整大小时也是如此。

例如,一个 datagridviewdgv1位于 的中间Form1。您的“锚定”在 dgv1 的左侧和顶部。当应用程序运行并调整大小时,无论是从不同的屏幕分辨率还是更改表单大小, 的顶部和左侧dgv1都会相应地发生变化以保持它们与From1. 底部和右侧不会。


小智 6

如果要显示完整的标题文本

这将自动调整列的大小,以便标题将显示完整的标题文本。

dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
Run Code Online (Sandbox Code Playgroud)

对于 Dock 模式

如果要在面板或表单中显示停靠模式。

dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
Run Code Online (Sandbox Code Playgroud)