Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.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# 根据选定的列表框项仅加载DataGridView一次_C#_Datagridview_Visual Studio 2017 - Fatal编程技术网

C# 根据选定的列表框项仅加载DataGridView一次

C# 根据选定的列表框项仅加载DataGridView一次,c#,datagridview,visual-studio-2017,C#,Datagridview,Visual Studio 2017,我正在使用Visual Studio 2017开发WinForm应用程序。 我创建了一个列表框,如下所示。 当我第一次单击“水果”时,将显示以下dataGridview i、 e每当我按下“水果”键时,我都会得到上面的数据网格。蔬菜也有类似的对应值。但问题是,当我再次单击“水果”时,值会被添加。我再次得到相同的值,而不是仅仅保留它。这是我的密码 public Form1() { FruitList.Add("Mango"); Frui

我正在使用Visual Studio 2017开发WinForm应用程序。 我创建了一个列表框,如下所示。

当我第一次单击“水果”时,将显示以下dataGridview

i、 e每当我按下“水果”键时,我都会得到上面的数据网格。蔬菜也有类似的对应值。但问题是,当我再次单击“水果”时,值会被添加。我再次得到相同的值,而不是仅仅保留它。这是我的密码

public Form1()
    {          
        FruitList.Add("Mango");
        FruitList.Add("Apple");

        InitializeComponent();
    }
private void listBox2_SelectedIndexChanged(object sender, EventArgs e)
    {
        string a = listBox2.SelectedItem.ToString();
        if (a == "Fruits")
        {
            toolStripStatusLabel1.Text = a;
            dataGridView2.Columns.Add("key", "Fruit");
            dataGridView2.Columns.Add("value", "Name");
            foreach (var var in FruitList)
            {
                dataGridView2.Rows.Add("Fruit", var);
            }

        }
    }
当我选择“蔬菜”时,只有与之相关的值才会出现在dataGridview中。但当我点击列表框中的项目时,我会把所有的东西都添加进去

如何只加载一次dataGridView值。 我对VisualStudio和C完全陌生,只是在探索它的各种特性。如果有人能帮忙就好了。提前谢谢

根据er shoaib在添加后的回答

 dataGridView2.Rows.Clear();
在线上

string a = listBox2.SelectedItem.ToString(); 
string a = listBox2.SelectedItem.ToString(); 
我把里面的东西重新装好


这很好,除非我不删除或做任何更改。如果我使用按钮控件删除一个选定的行,比如说Mango行,当我再次按下列表中的水果项目时,这些项目将从一开始加载。如何在整个应用程序中保留更改。直到我关上表格。有什么帮助吗

在for循环之前,清除数据网格,然后启动for循环并添加项

    datagrid2.rows.clear().

单击列表框中的项时,需要先清除所有行,然后才能将新行填充到数据网格视图

添加这一行

dataGridView2.Rows.Clear();
在线上

string a = listBox2.SelectedItem.ToString(); 
string a = listBox2.SelectedItem.ToString(); 

添加此行dataGridView2.Rows.Clear;在该行上方的字符串a=listBox2.SelectedItem.ToString;并让我知道。这是好的,除非我不删除或作出任何更改。如果我使用按钮控件删除一个选定的行,比如说Mango行,当我再次按下列表中的水果项目时,这些项目将从一开始加载。如何在整个应用程序中保留更改。比如直到我关闭表单。意思是如果你删除芒果,那么它也可以从水果列表中删除,所以下次当你在列表框中选择水果时,你只会得到苹果?是的,这是可能的。通过删除列表值,我可以做到这一点。但是,通过使用dataGridView或WINForm功能或任何其他黑客,这是可能的吗?您必须根据需要实现逻辑并开发自定义控件。