Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# Windows Forms
Войти
Регистрация
Восстановить пароль
 
sysrepos
57 / 55 / 24
Регистрация: 08.08.2013
Сообщений: 339
Записей в блоге: 1
1

Ячейка DataGridView читается только со второго раза

17.02.2016, 00:38. Просмотров 189. Ответов 2
Метки нет (Все метки)

в качестве тренировки пытаюсь написать записную книжку.
Есть форма, на ней dataGridView1 (1 колонка - номер, 2 - имя, 3 - телефон).
Первая колонка нумеруется автоматически таким кодом:

C#
1
2
3
4
5
6
7
8
9
10
11
        // добавить нумерацию
        private void dataGridView1_RowPrePaint(object sender, DataGridViewRowPrePaintEventArgs e)
        {
 
            object head = this.dataGridView1.Rows[e.RowIndex].HeaderCell.Value;
            if (head == null || !head.Equals((e.RowIndex + 1).ToString()))
            {
                this.dataGridView1.Rows[e.RowIndex].HeaderCell.Value = (e.RowIndex + 1).ToString();
                this.dataGridView1.Rows[e.RowIndex].Cells[0].Value = (e.RowIndex + 1).ToString();
            }
        }
есть кнопка "добавить запись". Появляется новая форма, в ней вводятся имя, телефон. Добавляется новая строка с соответствующими данными.
Далее проблема: после добавления новой строки идет метод Record(); записи содержимого dataGridView1 в файл .
Но ячейка с номером с первого раза не читается, а читается только со второго раза.
Как сделать так, чтобы сразу читалось?

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
 private void button1_Click(object sender, EventArgs e) //ADD form1
        {
  
            Data.b = false;
            string[] rows1 = new string[3];
            
            frm2_add frm2 = new frm2_add();
 
 
            frm2.ShowDialog();
 
            
            if (Data.b) //если в окне адд была нажата кнопка ок
            {
                rows1[0] = "";
                rows1[1] = Data.name;
                rows1[2] = Data.tel;
 
                this.dataGridView1.Rows.Add(rows1);
                  
            }
 
 
MessageBox.Show(dataGridView1.Rows[0].Cells[0].Value.ToString()); // ЗНАЧЕНИЕ БУДЕТ ""
MessageBox.Show(dataGridView1.Rows[0].Cells[0].Value.ToString()); // ЗНАЧЕНИЕ БУДЕТ 1
 
            //Record();
 
        }
0
Вложения
Тип файла: rar Записная книжка.rar (65.0 Кб, 1 просмотров)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.02.2016, 00:38
Ответы с готовыми решениями:

Приложение запуcкается только со второго раза
Пишу небольшое клиент серверное приложение. И обратил внимание на то что у сервера появилась...

Файл в Openfiledialog выбирается только со второго раза
private void Open_btn_Click(object sender, EventArgs e) { string filePath; ...

ContextMenuStrip начинает работать только после второго раза
Сделал меню правой кнопки мыши для Datagridview. Но не могу понять, запустил приложение, кликаю 1...

Ячейка в DataGridView
Добрый день! Подскажите как запретить ввод цифр и всяки знаков в ячейку datagridview??

Datagridview и высокая ячейка
Приветствую. Проблема заключается в следующем: Имеется datagridview на фиксированной форме. ...

2
Даценд
Модератор
Эксперт .NET
4274 / 4010 / 2656
Регистрация: 20.04.2015
Сообщений: 7,296
17.02.2016, 01:32 2
sysrepos,
стр. 15:
C#
1
rows1[0] = (dataGridView1.RowCount+1).ToString();
А зачем понадобилась Data.b?
Это делается проще. Для кнопки OK на 2-й форме устанавливается свойство DialogResult = OK, а проверка делается так:
C#
1
2
3
4
5
6
7
if (frm2.ShowDialog() == DialogResult.OK) //отдельно строка frm2.ShowDialog(); не нужна
{
    rows1[0] = (dataGridView1.RowCount + 1).ToString();
    rows1[1] = Data.name;
    rows1[2] = Data.tel;
    this.dataGridView1.Rows.Add(rows1);
}
И в обработчике кнопки OK при этом не нужно указывать
C#
1
this.Close();
Ну и много других мелочей и не только, которые бросаются в глаза и которые стоило бы реализовать по-другому.
1
sysrepos
57 / 55 / 24
Регистрация: 08.08.2013
Сообщений: 339
Записей в блоге: 1
17.02.2016, 23:41  [ТС] 3
ок, спасибо
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.02.2016, 23:41

Мигающая ячейка datagridview
Добрый день. К примеру, есть две ячейки в datagridview. В первой значение сравнивается с X. Если...

Проверка заполнена ли ячейка DataGridView
Здравствуйте. Знающие, помогите пжл с кодом. Есть DGV, она заполняется из DGV. В DGV есть столбцы,...

Ячейка типа Button в dataGridView
Суть проблемы такова. На форме имеется dataGridView, в котором 3 колонки: средняя составляется...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru