0 / 0 / 0
Регистрация: 10.09.2014
Сообщений: 2
1

Разобраться с работой события СellClick в DataGridView

10.09.2014, 06:52. Показов 836. Ответов 2
Метки нет (Все метки)

доброе время суток,
помогите разобраться с работой события СellClick в DataGridView

На форме создаются N-количество TabPages, на которых программно размещается dGVListPatien плюс на самой форме создается обычным способом еще один dGVListTreatment.

Нужно сделать так чтобы когда на dGVListPatien нажимаешь на строку менялось значение в таблице dGVListTreatment соответственно к номеру, который передается.

Вот код создания dGVListPatien, который находится в Form_Load
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
for (int i = 0; i < values_name.Count; i++)
                {
                    string name_group = values_name[i].ToString();
                    DataGridView dGVListPatien = new DataGridView();
                    dGVListPatien = new DataGridView();
                    dGVListPatien.Dock = DockStyle.Fill;
                    dGVListPatien.ReadOnly = true;
                    
dGVListPatien.CellClick += new System.Windows.Forms.DataGridViewCellEventHandler(dGVListPatien_CellClick);
 
                    dGVListPatien.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
                    dGVListPatien.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
 
                    dGVListPatien.Columns.Add("Nmedcard", "Номер карты");
                    dGVListPatien.Columns["Nmedcard"].Width = 50;
                    .....//создание необходимого количества колонок
 
                    TabPage tabPgNew = new TabPage();
                    tabPgNew.Text = name_group;
                    tabPgNew.Controls.Add(dGVListPatien);                  
                    this.tabCntrlPatient.TabPages.Add(tabPgNew);
 
                    MySqlCommand cmdWHERE = new MySqlCommand("SELECT t.Nmedcard, CONCAT_WS(' ',t.Surname,t.FirstName,t.Patronymic) AS FullName, FLOOR(DATEDIFF(NOW(),t.DataOfBirth)/365.242199) AS Age, t.NSessionDiagn, t.NSessionTreat, t.Diagnosis, t.Weight, t.Height, t.Address, t.PhoneN, t.Email, t.Sex FROM tpatien t INNER JOIN tgroup g ON g.NGroup=t.NGroup and g.Name='" + name_group + "'", connection);
                    MySqlDataReader readerWHERE = cmdWHERE.ExecuteReader();
 
                     while (readerWHERE.Read())
                     {
                         dGVListPatien.Rows.Add(readerWHERE["Nmedcard"].ToString(), readerWHERE["FullName"].ToString(), readerWHERE["Age"].ToString(), readerWHERE["NSessionDiagn"].ToString(), readerWHERE["NSessionTreat"].ToString(), readerWHERE["Diagnosis"].ToString(), readerWHERE["Weight"].ToString(), readerWHERE["Height"].ToString(), readerWHERE["Address"].ToString(), readerWHERE["PhoneN"].ToString(), readerWHERE["Email"].ToString(), readerWHERE["Sex"].ToString());
                     }
                     readerWHERE.Close();
 
                       }
 
и вот код события:
        private void dGVListPatien_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            int s=new Int32();
            dGVListTreatment.Columns.Clear();
            s = Convert.ToInt32(dGVListPatien.CurrentRow.Cells[0].Value);
            DGCell(s);
         }
DGCell(s); - функция заполнения dGVListTreatment в зависимости от того какой номер будет первом столбце dGVListPatien.

Проблема в том что здесь не передается значение dGVListPatien.CurrentRow.Cells[0].Value, оно всегда равняется null.
Еще могу добавить, что если размещать обычным путем dGVListPatien, то все работает нормально, но количество TabPage зависит от пользователя и может меняться, поэтому необходимо программное добавление таблиц и страниц.

В чем может быть проблема? как можно решить эту задачу?
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.09.2014, 06:52
Ответы с готовыми решениями:

не могу разобраться с работой роутера
Добрый день. Есть роутер D-Link dir 300,беспроводная дом.сеть : 2 ноутбука,планшетник на...

Помогите разобраться с работой с указателями....
Кто нить мог бы посоветовать, что можно почитать для того что бы понять работу с указателями.......

Не могу разобраться с работой программы
Вот код, не могу понять что означает cin&gt;&gt;b,#include &lt;bits/stdc++.h&gt; и sort(b, b + 3); #include...

Прошу разобраться с курсовой работой
Был дан пример с кодом ( говорили что правильный) но у меня он не срабатывает. Помогите разобраться...

2
1056 / 863 / 195
Регистрация: 31.03.2010
Сообщений: 2,521
11.09.2014, 18:15 2
maks1313, а зачем необходимо создавать вкладку на каждую группу? может, просто сделать комбо-бокс со списком групп и изменять данные в DataGidView по выбору в комбобоксе?
и я не понял вашу задачу. просто скажите словами какие данные содержатся в dGVListPatien и в dGVListTreatment и что должно происходить при выборе группы в dGVListPatien ?
а в вашем случае я не вижу чтоб вы подписывали метод на событие CellClick для созданного DataGridView
более того у вас в методе dGVListPatien_CellClick идет обращение к какому-то левому dGVListPatient, а не ктому, который вызвал событие. чтоб получить элемент управления, который вызвал событие используйте
C#
1
DataGridView dgvCurr = (sender as DataGridView);
1
0 / 0 / 0
Регистрация: 10.09.2014
Сообщений: 2
12.09.2014, 06:26  [ТС] 3
Cпасибо большое! проблема решена
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.09.2014, 06:26
Помогаю со студенческими работами здесь

Не могу разобраться с работой потоков
Сейчас изучаю работу потокв в C# Для меня основная польза от потоков - что можно работать...

Помогите разобраться с работой FOR на данных примерах
1) Создать две директории. Наполнить одну из них несколькими файлами. При помощи ключевого слова...

Пытаюсь разобраться с работой и моделированием 3-ех фазного автотрансформатора
Здравствуйте. Пытаюсь разобраться с работой и моделированием 3-ех фазного автотрансформатора....

ESR-метр, помогите разобраться с работой схем
Доброго времени суток! В связи с грядущим макетированием и сборкой схемы, требующей &quot;low ESR&quot;...


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

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

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