Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.59/63: Рейтинг темы: голосов - 63, средняя оценка - 4.59
2 / 2 / 1
Регистрация: 27.08.2011
Сообщений: 56
1

Изменение содержимого одной ячейки Datagridview после изменения другой ячейки

31.12.2011, 14:26. Показов 13107. Ответов 6
Метки нет (Все метки)

Здравствуйте. Есть Datagridview с 2 столбцами. Столбцы типа ComboBox. В 1 столбце уже забиты значения, 2 столбец пустой. Необходимо сделать так чтобы при выборе определенного элемента в 1 столбце 2 столбец заполнялся определенными данными, и так нужно для каждой строки. Добавление данных сделал, но получилось так что если есть 2 строки, и в 1 строке меняем значение 1 столбца то 2 столбец автоматически заполняется для каждой строки, а должен только для той в которой поменяли значение 1 столбца. помогите пожалуйста.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.12.2011, 14:26
Ответы с готовыми решениями:

DataGridView запрет изменения содержимого ячейки
Здравствуйте, подскажите пожалуйста, как разрешить пользователю выделять содержимое ячейки...

Как делать изменение ячейки после изменения другой
Ребят такая трабла. У меня есть dataGrid у него два столбца, один текстовый второй checkbox. Нужно...

Зависимость содержимого одной ячейки от другой
Задача крайне простая, но как её сделать - без понятия. Нужно задать такую формулу: "Если в...

StrningGrid — действие после изменения содержимого ячейки
Как сделать, чтобы после изменения значения в ячейке Стринг Грида (goEditing = true) произошло...

6
гроза ленивых студентов
453 / 408 / 51
Регистрация: 27.03.2011
Сообщений: 823
31.12.2011, 15:18 2
код покажи...
0
2 / 2 / 1
Регистрация: 27.08.2011
Сообщений: 56
31.12.2011, 15:25  [ТС] 3
Обработка события по идет по щелчку мыши
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
private void dataGridView3_Click(object sender, EventArgs e)
        {
            if (dataGridView3.SelectedRows.Count > 0)
            {
                for (int j = 0; j < dataGridView3.SelectedRows.Count; j++)
                {
                    for (int i = 0; i < dataGridView3.RowCount; i++)
                    {
                        if (dataGridView3.SelectedRows[j] == dataGridView3.Rows[i])
                        {
                            if (Convert.ToString(dataGridView3.Rows[i].Cells[2].Value) == "НПС")
                            {
                                Объект2.Items.Clear(); //это третья ячейка, сначала очищается
                                for (int r = 0; r < MainForm.AllCount1.NPCCount; r++)
                                {
                                    Объект2.Items.Add(MainForm.NPCOBJ[r].IDName); //третьей ячейке добавляются данные
                                }
                            }
 
                        }
                    }
                }
            }
        }
0
гроза ленивых студентов
453 / 408 / 51
Регистрация: 27.03.2011
Сообщений: 823
31.12.2011, 15:41 4
ну начнем с того что вот это:
C#
1
2
3
4
5
6
7
if (dataGridView3.SelectedRows.Count > 0)
            {
                for (int j = 0; j < dataGridView3.SelectedRows.Count; j++)
                {
                    for (int i = 0; i < dataGridView3.RowCount; i++)
                    {
                        if (dataGridView3.SelectedRows[j] == dataGridView3.Rows[i])
это полный ад...
далее:
C#
1
2
3
4
5
Объект2.Items.Clear(); //это третья ячейка, сначала очищается
                                for (int r = 0; r < MainForm.AllCount1.NPCCount; r++)
                                {
                                    Объект2.Items.Add(MainForm.NPCOBJ[r].IDName); //третьей ячейке добавляются данные
                                }
я не вижу здесь никакого указания на то, что Объект2 в данном случае - третья ячейка КОНКРЕТНОЙ строки...

имхо, проще было бы как-нибудь так (я могу ошибаться немного с кодом, нет времени что-нить подобное у себя замутить чтобы точно на компиляции не стрельнуло):
C#
1
2
3
4
5
6
7
8
9
10
foreach (var selectedRow in dataGridView3.SelectedRows)
{
   if (selectedRow.Cells[2].Value.ToString() == "НПС") //здесь копия твоего кода по сути, но на самом деле Cells[2] - это ТРЕТИЙ столбец
   {
      selectedRow.Cells[3].Items.Clear(); //возможно тут и в добавлении надо будет сделать приведение к ячейке вида ComboBox
      for (int r = 0; r < MainForm.AllCount1.NPCCount; r++)
      {
         selectedRow.Cells[3].Items.Add(MainForm.NPCOBJ[r].IDName); //ЧЕТВЕРТОЙ ячейке добавляются данные
      }
}
как-то так...
0
2 / 2 / 1
Регистрация: 27.08.2011
Сообщений: 56
31.12.2011, 15:52  [ТС] 5
Я думал об этом, но проблема в том что у Cells[3] нету компонента Items...
0
гроза ленивых студентов
453 / 408 / 51
Регистрация: 27.03.2011
Сообщений: 823
31.12.2011, 16:07 6
Лучший ответ Сообщение было отмечено SatanaXIII как решение

Решение

ну дак ты сделай приведение то
типа
C#
1
((DataGridViewComboBoxCell)selectedRow.Cells[3]).Items.Clear();
1
2 / 2 / 1
Регистрация: 27.08.2011
Сообщений: 56
31.12.2011, 16:16  [ТС] 7
Благодарю, все работает
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.12.2011, 16:16

Изменения формата ячейки Excel средствами VBA в зависимости от значения другой ячейки
Здравствуйте. Столкнулся с проблемой. Необходимо на листе Excel Залить, предположим, ячейку &quot;C4&quot;...

Фиксация даты на изменения другой ячейки, защита данных ячейки от изменений следующим днем
Добрый день, прошу помочь с решением данной задачи. Существует 2 строки, например номер 3 и 10. ...

Изменения формата ячейки в зависимости от значения другой ячейки
Здравствуйте, помогите решить такой вопрос. Задача, которая в принципе решается средствами...

Как макросом провести фигуру-линию - из центра одной ячейки в центр другой ячейки
Добрый день, господа программисты. Помогите разобраться.  На листе находятся...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru