C# Winforms数据网格崩溃
我试图通过使用datatable创建的datagrid的所有行执行搜索。我循环遍历这些行,获取每行所需的字符串,然后检查第一行中是否包含第二个字符串。如果未包含该行,则将该行设置为visible=false。不幸的是,数据网格冻结,然后在启动后几乎立即崩溃。 以下是相关代码:C# Winforms数据网格崩溃,c#,winforms,datagrid,C#,Winforms,Datagrid,我试图通过使用datatable创建的datagrid的所有行执行搜索。我循环遍历这些行,获取每行所需的字符串,然后检查第一行中是否包含第二个字符串。如果未包含该行,则将该行设置为visible=false。不幸的是,数据网格冻结,然后在启动后几乎立即崩溃。 以下是相关代码: private void OnTextboxNameChangedEvent(object sender, EventArgs e) { String name = filterControl.st
private void OnTextboxNameChangedEvent(object sender, EventArgs e)
{
String name = filterControl.stringName;
for(int x = 0; x < dataGridView1.RowCount; x++)
{
if(DB.GetName(x).IndexOf(name, StringComparison.OrdinalIgnoreCase) == -1)
{
dataGridView1.Rows[x].Visible = false;
}
}
}
private void OnTextboxNameChangedEvent(对象发送方,事件参数e)
{
字符串名称=filterControl.stringName;
对于(int x=0;x
奇怪的是,如果我将“==-1”改为“!=-1”,它工作得非常完美,只是它的作用与我需要它做的相反。只有当它不是“!=-1”时才会崩溃
谢谢你的时间和帮助
编辑:
我已经进一步指出了这个问题。
它在我设置行[x]的行上崩溃。可见,但仅在第一行或x=0时可见。当我将字符串“name”更改为不包含第一行的内容时,它可以完美地工作
这意味着设置第一行的visible属性会使datagrid崩溃。我现在的问题是,我怎样才能避开这个问题呢?那(db…….OrdinalingOrecase)呢。这不起作用,它仍然冻结,然后坠毁。值得一试。