Загрузка DataGridView только один раз на основе выбранного элемента списка - PullRequest
0 голосов
/ 13 декабря 2018

Я занимаюсь разработкой приложения WinForm с использованием Visual Studio 2017. Я создал список следующим образом.enter image description here

при первом щелчке по Фруктам появится следующее dataGridview.

enter image description here

т.е. всякий раз, когда я нажимаю фрукты, я должен получить вышеупомянутую сетку данных.и аналогично соответствующие значения для овощей тоже.Но проблема в том, что когда я нажимаю на фрукты еще раз, значения добавляются.Я снова получаю те же значения, а не просто сохраняю их.Вот мой код.

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);
            }

        }
    }

И когда я выбираю Vegetable, в dataGridview должны появляться только те значения, которые связаны с этим.Но я все добавляю, когда щелкаю элемент в списке

Как загрузить значения dataGridView только один раз.Я совершенно новичок в визуальной студии и C #.Просто исследую различные его особенности.Было бы хорошо, если бы кто-нибудь мог помочь.Заранее спасибо

Согласно ответу er-shoaib после добавления,

 dataGridView2.Rows.Clear();

Вкл. Над строкой

string a = listBox2.SelectedItem.ToString(); 

Я загружаю содержимое.

Это нормально, если я не удаляю и не делаю никаких изменений.Если я удаляю выбранную строку, скажем, строку Mango, используя элемент управления Button, и когда я снова нажимаю элемент Fruits в списке, элементы загружаются с самого начала.Как сделать, чтобы изменения сохранялись на протяжении всего приложения.Как, пока я не закрою форму.Любая помощь по этому вопросу.

Ответы [ 2 ]

0 голосов
/ 13 декабря 2018

Вам нужно очистить все строки перед заполнением новых строк в виде сетки данных, когда вы щелкаете по элементу в списке.

Добавьте эту строку

dataGridView2.Rows.Clear();

Вкл над строкой

string a = listBox2.SelectedItem.ToString(); 
0 голосов
/ 13 декабря 2018

Перед циклом for очистите сетку данных, затем начните цикл и добавьте элементы.

    datagrid2.rows.clear().
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...