Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.09.2014, 15:16   #1
max131
Новичок
Джуниор
 
Регистрация: 10.09.2014
Сообщений: 1
По умолчанию программное создание DataGridView

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

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

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

Вот код создания dGVListPatien, который находится в Form_Load
Код:
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, точнее оно всегда нуль.

В чем может быть проблема? как можно решить эту задачу? Как правильно передавать dGVListPatien?
max131 вне форума Ответить с цитированием
Старый 24.09.2014, 08:30   #2
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию

Попробуйте вместо dGVListPatien.CurrentRow.Cells[0].Value использовать dGVListPatien.SelectedRows[index]
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
WorldMaster вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программное создание формы/компонента velldrum Помощь студентам 1 01.06.2011 07:40
Программное создание ToolButton Angel86rus Общие вопросы Delphi 4 20.02.2010 16:37
Программное создание БД phpusr БД в Delphi 10 01.02.2010 07:41
Программное создание книги Волк Microsoft Office Excel 2 16.03.2009 07:57
Программное создание Editов Alar Компоненты Delphi 0 29.10.2006 23:13