【问题标题】:resizing a form according to the size of the datagridview that it contains根据包含的 datagridview 的大小调整表单的大小
【发布时间】:2013-01-17 17:14:22
【问题描述】:

我的 datagridview 已连接到数据源:

this.dataGridView1.DataSource = mydatatable;

我想将此数据呈现给用户。如果它有超过 X 行,那么它将有一个垂直滚动条。

放在表单中不好看,因为表单的大小可以大于数据表的大小。我尝试根据 datagridview 的大小手动调整表单的大小,如下所示:

this.Size = dataGridView1.Size;

但它不起作用(如果 datagridview 较小,它不会使表单更小。如果它大于它覆盖其中的一些)。也许有一种方法可以在不通过表格的情况下展示表格?或者有没有办法正确调整它的大小?

我尝试了以下方法(响应答案):

this.dataGridView1.DataSource = competingCourses; 
this.dataGridView1.RightToLeft = RightToLeft.Yes;
this.dataGridView1.AutoSizeColumnsMode = dataGridViewAutoSizeColumnsMode.AllCells; 

我也有:

this.AutoSize=true; 
this.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; 

它仍然不会改变包含表单的大小。

【问题讨论】:

  • 你试过dataGridView1.Height吗?

标签: c# forms datagridview


【解决方案1】:

尝试从 DataGridView 的高度和宽度构造一个新的Size 对象,然后将其分配给表单大小:

Size newSize = new Size(dataGridView1.Width, dataGridView1.Height);
this.Size = newSize;

【讨论】:

    【解决方案2】:

    您可以通过在表单上设置Autosize=TrueAutoSizeMode=GrowAndShrink 来根据其内容自动调整表单大小。

    【讨论】:

    • this.dataGridView1.DataSource = 竞争课程; this.dataGridView1.RightToLeft = RightToLeft.Yes; this.dataGridView1.AutoSizeColumnsMode = dataGridViewAutoSizeColumnsMode.AllCells;在上面添加您的建议后,我还有: this.AutoSize=true; this.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;它仍然不会改变包含表单的大小。
    • @user1743977 您有权编辑您的问题,我们鼓励您这样做。您在评论中给出的代码应该添加到您的问题中。我已经在这里为你完成了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-01
    • 2013-11-14
    • 2014-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多