【发布时间】:2021-08-31 02:26:37
【问题描述】:
用户界面:
Btn 点击代码:
private void button1_Click(object sender, EventArgs e)
{
DataTable dt = new DataTable();
dt.Columns.Add("Column 1");
dt.Columns.Add("Column 2");
dt.Columns.Add("Column 3");
dt.Columns.Add("Column 4");
dt.Columns.Add("Column 5");
DataRow dr = dt.NewRow();
dr["Column 1"] = "Col1 Test";
dr["Column 2"] = "Col2 Test";
dr["Column 3"] = "Col3 Test";
dr["Column 4"] = "Col4 Test";
dr["Column 5"] = "Col5 Test Col5 Test Col5 Test Col5 Test Col5 Test Col5 Test Col5 Test Col5 Test Col5 Test Col5 Test Col5 Test Col5 Test Col5 Test Col5 Test Col5 Test Col5 Test Col5 Test Col5 Test ";
dt.Rows.Add(dr);
dataGridView1.DataSource = dt;
dataGridView1.Columns["Column 5"].DefaultCellStyle.WrapMode = DataGridViewTriState.True;
dataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.DisplayedCellsExceptHeaders;
dataGridView1.Columns["Column 5"].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
}
结果:
如果我通过 Visual Studio 设计器减小 gridview 的大小并重新启动应用程序,则不会显示水平条。
用户界面:
输出:
如何使 datagridview 行和列换行和自动调整大小,使其不会在空间中抽筋?我希望它动态调整行高并自动显示水平滚动条。
【问题讨论】:
-
你能举例说明你所描述的吗?
-
只是一个普通的datagridview,上面的代码我已经贴好了。
-
在我使用发布的代码进行的测试中,如果列调整大小使得列超出网格的大小,则水平滚动条会按预期显示。你能发一个 minimal reproducible example 来证明这一点吗?
-
除了默认设置之外,您是否对 datagridview 进行任何其他设置?
-
没有。我创建了一个
DataTable添加了几列并将其设置为DataSource到网格。然后执行您发布的代码。授予“同时”在“自动调整大小”列中键入的权限,在用户按下回车键或离开单元格之前,该列不会扩展。我只能猜测这可能就是您所描述的。
标签: winforms datagridview