C# 我怎样才能防止;“随机”;在我的DGV中显示灰色行?
我在DataGridView中将AllowUserToAddress设置为false。然而,当我通过方向箭头键导航到最后一行时,最上面的一行滚动到看不见的地方,一个新的灰色行出现在底部 我怎样才能防止这种情况?我希望所有行都可见,无论光标向上、向下、向左或向右移动多远C# 我怎样才能防止;“随机”;在我的DGV中显示灰色行?,c#,winforms,datagridview,C#,Winforms,Datagridview,我在DataGridView中将AllowUserToAddress设置为false。然而,当我通过方向箭头键导航到最后一行时,最上面的一行滚动到看不见的地方,一个新的灰色行出现在底部 我怎样才能防止这种情况?我希望所有行都可见,无论光标向上、向下、向左或向右移动多远 注意:水平浏览单元格不会导致问题-这样做时不会添加灰色列。我希望行/垂直功能与此相同。因此,一种方法是执行以下操作: 在DataGridView上,将属性AllowUserToAddress和AllowUserToDeleteRo
注意:水平浏览单元格不会导致问题-这样做时不会添加灰色列。我希望行/垂直功能与此相同。因此,一种方法是执行以下操作: 在
DataGridView
上,将属性AllowUserToAddress
和AllowUserToDeleteRows
设置为false
另外,将AutoSizeRowsMode
设置为None
按如下方式处理DataGridView
的大小调整:
private void dataGridView1_Resize(object sender, EventArgs e)
{
var rowHeight = (dataGridView1.Height - dataGridView1.ColumnHeadersHeight) / 10;
for (int i = 0; i < 10; ++i)
{
dataGridView1.Rows[i].Height = rowHeight;
}
}
private void dataGridView1\u Resize(对象发送方,事件参数e)
{
var rowHeight=(dataGridView1.Height-dataGridView1.columnheadershight)/10;
对于(int i=0;i<10;++i)
{
dataGridView1.Rows[i].Height=rowHeight;
}
}
在我的示例中,Form1_Load事件只是添加了一些行,然后调用DGV的resize以使所有内容最初看起来都正确,但您可以用不同的方法处理此问题。比如:
private void Form1_Load(object sender, EventArgs e)
{
for (int i = 0; i < 10; ++i)
{
dataGridView1.Rows.Add();
}
dataGridView1_Resize(this, EventArgs.Empty);
}
private void Form1\u加载(对象发送方,事件参数e)
{
对于(int i=0;i<10;++i)
{
dataGridView1.Rows.Add();
}
dataGridView1_Resize(此为EventArgs.Empty);
}
你说的“我希望所有行都可见”是什么意思?您是否有足够的行来适应网格的大小?没有垂直滚动条?是;滚动条=无。列数始终相同(通常情况下);行数相同,除非用户(以编程方式)添加行,在这种情况下,行仍使用相同的空间量(以这种方式添加新行时,每行的高度都会降低)。我只是不想要任何“自动”灰色行。我已经用这种方式设置了这些属性,并且正在根据gridheight/rowcount动态更改行的高度,但我会尝试一下。很有趣。在我的演示应用程序中运行良好。这可能是操作系统的不同吗?我在XP上。也许吧。不知道。我正在使用Win7进行测试。