Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我怎样才能防止;“随机”;在我的DGV中显示灰色行?_C#_Winforms_Datagridview - Fatal编程技术网

C# 我怎样才能防止;“随机”;在我的DGV中显示灰色行?

C# 我怎样才能防止;“随机”;在我的DGV中显示灰色行?,c#,winforms,datagridview,C#,Winforms,Datagridview,我在DataGridView中将AllowUserToAddress设置为false。然而,当我通过方向箭头键导航到最后一行时,最上面的一行滚动到看不见的地方,一个新的灰色行出现在底部 我怎样才能防止这种情况?我希望所有行都可见,无论光标向上、向下、向左或向右移动多远 注意:水平浏览单元格不会导致问题-这样做时不会添加灰色列。我希望行/垂直功能与此相同。因此,一种方法是执行以下操作: 在DataGridView上,将属性AllowUserToAddress和AllowUserToDeleteRo

我在DataGridView中将AllowUserToAddress设置为false。然而,当我通过方向箭头键导航到最后一行时,最上面的一行滚动到看不见的地方,一个新的灰色行出现在底部

我怎样才能防止这种情况?我希望所有行都可见,无论光标向上、向下、向左或向右移动多远


注意:水平浏览单元格不会导致问题-这样做时不会添加灰色列。我希望行/垂直功能与此相同。

因此,一种方法是执行以下操作:

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进行测试。