Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.68/34: Рейтинг темы: голосов - 34, средняя оценка - 4.68
4 / 4 / 0
Регистрация: 21.08.2016
Сообщений: 404

Как обработать событие checked в строке DataGridView?

23.06.2019, 02:41. Показов 7600. Ответов 35
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите пожалуйста.
Есть много информации про события datagridview click на row, но мне надо на checkbox checked.

В datagridview есть checkbox. как написать правильно код чтобы при checkbox checked информация от столбца - Apzīmējums записалас в техтбох1, а если галочку снять то информация с textbox1 пропала.
Изображения
 
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.06.2019, 02:41
Ответы с готовыми решениями:

Как обработать событие со столбцом типа checkbox в datagridview?
У меня есть datagridview, который заполняется с помощью SQL запроса, все данные считываются из БД. Один столбик - типа boolean (его тип в...

Как правильно обработать DoubleClick по строке в DataGridView и определить номер этой строки
И снова здравствуйте! Хочу обработать двойной щелчек по строке в DataGridView Нарыл в тырнете это: private void...

Обработать двойной клик по строке DataGridView в любом столбце
Вот таким способом у меня реализовано двойное нажатие по строке DataGrid: private void dataGridView4_CellMouseDoubleClick(object sender,...

35
2810 / 1679 / 885
Регистрация: 14.04.2015
Сообщений: 5,723
14.08.2019, 17:15
Студворк — интернет-сервис помощи студентам
Felikss, когда пишешь ответ или вопрос в теме, то лучше ставить ник человека (нажимаешь на ник слева от сообщения), к которому обращаешься, иначе уведомления не приходят, что есть какие-то адресованные сообщения.
0
4 / 4 / 0
Регистрация: 21.08.2016
Сообщений: 404
15.08.2019, 21:13  [ТС]
AndreyVorobey, Привет! Можете помочь с гиперссылкой в DataGridView.
Сложность в том что с excel ссылку открывает, а через программу если в DataGridView нажать на ссылку, откривает толйко е-маил и всё.
Сама база даних в ехсеl, и гиперссылки тоже в excel. Excel данные в DataGridView попадают через SQL сервер.

C#
1
2
3
4
5
6
7
8
9
10
 private void DataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
 
            if (e.ColumnIndex == 7 && e.RowIndex != -1)
            {
                var path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"C:\Program Files (x86)\IBM\Notes\notes.exe");
                Process.Start(new ProcessStartInfo(path));
 
            }
        }
В DataGridView Link1 столбец нр.7.
Пробовал к new ProcessStartInfo(path) добавить + dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString()
выскакивает еррор: System.ComponentModel.Win32Exception: 'The system cannot find the file specified'

Полный ужас
Миниатюры
Как обработать событие checked в строке DataGridView?  
0
4 / 4 / 0
Регистрация: 21.08.2016
Сообщений: 404
16.08.2019, 09:10  [ТС]
AndreyVorobey, Привет! Сегодня утром проверил и тоже самое в любом столбце кликаешь и откривается папка.
A если в свойствах убираешь FullRowSelect, то всё нормально.
Хочу сделать программу а ничего не получается
0
2810 / 1679 / 885
Регистрация: 14.04.2015
Сообщений: 5,723
16.08.2019, 09:37
Felikss, у меня все работает с FullRowSelect:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
        private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            // Открытие папки
            if (e.ColumnIndex == 3)
            {
                int IdRow = Convert.ToInt32(dataGridView1[0, dataGridView1.CurrentRow.Index].Value.ToString());
 
                Process.Start("explorer.exe", Application.StartupPath + $"\\ВСЕ КАРТОЧКИ\\{IdRow}");
            }
            // Открытие ссылки
            else if (e.ColumnIndex == 2)
            {
                Process.Start(new ProcessStartInfo(dataGridView1[2, dataGridView1.CurrentRow.Index].Value.ToString()));
            }    
        }
1
4 / 4 / 0
Регистрация: 21.08.2016
Сообщений: 404
16.08.2019, 09:50  [ТС]
AndreyVorobey, Теперь всё работает. Мистика какая то
0
4 / 4 / 0
Регистрация: 21.08.2016
Сообщений: 404
14.09.2019, 15:52  [ТС]
Привет!
Опять столкнулся с проблемой - сохранение датагрид в эксель.
Kогда я убираю с датагрид чекбоксы тогда всё работает, а с чекбоксами выдает ошибку (picture2).
Пробовал менять цифры но ничего не меняется.

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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
  
        private void BackgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
        {
            int index = 1;
            int process = advancedDataGridView2.Columns.Count;
 
            if (!backgroundWorker1.CancellationPending)
            {
                backgroundWorker1.ReportProgress(index++ * 100 / process);
            }
        }
 
        struct DataParameter
        {
            public string FileName { get; set; }
        }
            DataParameter _inputParameter;
 
        private void BackgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
        {
            progressBar1.Value = e.ProgressPercentage;
            label1.Text = string.Format("Process...{0}", e.ProgressPercentage);
            progressBar1.Update();
            progressBar1.Minimum = 0;
            progressBar1.Value = 100;
        }
 
        private void BackgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
        {
            if (e.Error == null)
            {
                Thread.Sleep(100);
                label1.Text = "Your data has been successfully exported 100%";
            }
        }
 
private void Button7_Click(object sender, EventArgs e)
        {
            Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
            Microsoft.Office.Interop.Excel.Workbook workbook = excel.Workbooks.Add(Type.Missing);
            Microsoft.Office.Interop.Excel.Worksheet worksheet = null;
            worksheet = workbook.Sheets["Sheet1"];
            worksheet = workbook.ActiveSheet;
            worksheet.Name = "Reports";
            for (int i = 1; i < advancedDataGridView2.Columns.Count + 1; i++)
            {
                worksheet.Cells[1, i] = advancedDataGridView2.Columns[i - 1].HeaderText;
            }
            for (int i = 0; i < advancedDataGridView2.ColumnCount; i++)
            {
                for (int j = 0; j < advancedDataGridView2.Columns.Count; j++)
                {
                    worksheet.Cells[i + 2, j + 1] = advancedDataGridView2.Rows[i].Cells[j].Value.ToString();
                }
            }
            var saveFileDialoge = new SaveFileDialog();
            _inputParameter.FileName = saveFileDialoge.FileName;
            if (saveFileDialoge.ShowDialog() == DialogResult.OK)
            {
                progressBar1.Minimum = 0;
                progressBar1.Value = 0;
                backgroundWorker1.RunWorkerAsync(_inputParameter);
                workbook.SaveAs(saveFileDialoge.FileName, XlFileFormat.xlWorkbookDefault, Type.Missing, Type.Missing, false, false,
                XlSaveAsAccessMode.xlNoChange, XlSaveConflictResolution.xlLocalSessionChanges, Type.Missing, Type.Missing);
            }
            excel.Quit();
        }
    }
}
Миниатюры
Как обработать событие checked в строке DataGridView?   Как обработать событие checked в строке DataGridView?  
0
187 / 100 / 19
Регистрация: 15.09.2011
Сообщений: 801
16.09.2019, 02:09
Felikss, по второй миниатюре видно, что Value == null, вот она и выдаёт NullReferenceException
надо перед тем, как делать ToString проверять Value на null
1
C# = ♫♪♫♪♪♫
 Аватар для Sanek32
57 / 56 / 18
Регистрация: 02.08.2014
Сообщений: 283
16.09.2019, 10:26
Обобщенный вариант, чтобы копипаста не было
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
public static class DataRowOperation
    {
        /// <summary>
        /// Выбрать/отменить выбор для заданных строк
        /// </summary>
        /// <param name="rows"></param>
        /// <param name="columnname"></param>
        public static void SelectRows(DataGridViewRow[] rows, string columnname)
        {
            foreach (DataGridViewRow row in rows)
            {
                var cell = row.Cells[columnname];
 
                if ((bool?)cell.Value == false ||
                    (bool?)cell.Value == null)
                {
                    cell.Value = true;
                }
                else
                {
                    cell.Value = false;
                }
            }
        }
    }
1
4 / 4 / 0
Регистрация: 21.08.2016
Сообщений: 404
17.09.2019, 12:31  [ТС]
всё получилось
Спасибо
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
private void Button4_Click(object sender, EventArgs e)
        {
            if (advancedDataGridView1.Rows.Count > 0)
            {
                Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();               
                Microsoft.Office.Interop.Excel.Workbook workbook = excel.Workbooks.Add(Type.Missing);
                for (int i = 1; i < advancedDataGridView2.Columns.Count + 1; i++)
                {
                    excel.Cells[1, i] = advancedDataGridView2.Columns[i - 1].HeaderText;
                }
                for (int i = 0; i < advancedDataGridView2.Rows.Count; i++)
                {
                    for (int j = 0; j < advancedDataGridView2.Columns.Count; j++)
                    {
                        excel.Cells[i + 2, j + 1] = advancedDataGridView2.Rows[i].Cells[j].Value;
                    }
                }
 
                var saveFileDialoge = new SaveFileDialog();
                saveFileDialoge.Filter = "Excel Workbook (*.xlsx)|*.xlsx|Excel Workbook (*.xls)|*.*";
                _inputParameter.FileName = saveFileDialoge.FileName;
                if (saveFileDialoge.ShowDialog() == DialogResult.OK)
                {
                    progressBar1.Minimum = 0;
                    progressBar1.Value = 0;
                    backgroundWorker1.RunWorkerAsync(_inputParameter);
                    workbook.SaveAs(saveFileDialoge.FileName, XlFileFormat.xlWorkbookDefault, Type.Missing, Type.Missing, false, false,
                    XlSaveAsAccessMode.xlNoChange, XlSaveConflictResolution.xlLocalSessionChanges, Type.Missing, Type.Missing);
                }
                excel.Columns.AutoFit();
                excel.Visible = true;
            }
Добавлено через 32 минуты
Теперь другая проблема.
У меня на форме есть оранжевые кнопки, нажимая на кнопки в datagridview1 открывается таблица с другими данными.
Открывая форму то автоматом в datagridview1 появляется данные с первой кнопки и копируя с datagridview1 таблицы в datagridview2 то всё ок.
Проблема в том что если я переключаю другую таблицу и хочу данные скопировать в datagridview2, то datagridview2 автоматом очищается. Но мне надо чтобы данные остались от предыдущий таблицы тоже.
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 Button2_Click(object sender, EventArgs e)
        {
            System.Data.DataTable table = new System.Data.DataTable();
            table.Columns.Add("ID");
            table.Columns.Add("Year");
            table.Columns.Add("Object");
            table.Columns.Add("Date_Time");
            table.Columns.Add("Event");
            table.Columns.Add("Action");
            table.Columns.Add("Link1");
            table.Columns.Add("Link2");
            table.Columns.Add("Link3");
            table.Columns.Add("Link4");
            table.Columns.Add("Link5");
            foreach (DataGridViewRow drv in advancedDataGridView1.Rows)
            {
                bool chkboxselect = Convert.ToBoolean(drv.Cells["DGVchkBox1"].Value);
                if (chkboxselect)
                {
                    table.Rows.Add(drv.Cells[1].Value, drv.Cells[2].Value, drv.Cells[3].Value, 
                    drv.Cells[4].Value, drv.Cells[5].Value, drv.Cells[6].Value, drv.Cells[7].Value, 
                    drv.Cells[8].Value, drv.Cells[9].Value, drv.Cells[10].Value, drv.Cells[11].Value);
                }
                advancedDataGridView2.DataSource = table;
            }
        }
[CSHARP]
 
 Eще одна проблема заключается в том то если я из checkedListBox1  убираю галочки например ID, Year Link1, Link2  то что мне не надо будет в excel, то всё ок в datagridview2 колонки тоже убирается,  но когда сохраняю в excel то в excel отображаются все колонки.
private void CheckedListBox1_ItemCheck(object sender, ItemCheckEventArgs e)
{
advancedDataGridView2.Columns[e.Index].Visible = (e.NewValue == CheckState.Checked);
}
[/CSHARP]
0
4 / 4 / 0
Регистрация: 21.08.2016
Сообщений: 404
19.09.2019, 05:34  [ТС]
Эту проблему решил:
Eще одна проблема заключается в том то если я из checkedListBox1 убираю галочки например ID, Year Link1, Link2 то что мне не надо будет в excel, то всё ок в datagridview2 колонки тоже убирается, но когда сохраняю в excel то в excel отображаются все колонки.

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
 private void Button4_Click(object sender, EventArgs e)
        {
            if (advancedDataGridView1.Rows.Count > 0)
            {
                Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
                Microsoft.Office.Interop.Excel.Workbook workbook = excel.Workbooks.Add(Type.Missing);
                Microsoft.Office.Interop.Excel.Worksheet worksheet = new Microsoft.Office.Interop.Excel.Worksheet();
                List<DataGridViewColumn> listVisible = new List<DataGridViewColumn>();
                foreach (DataGridViewColumn col in advancedDataGridView2.Columns)
                {
                    if (col.Visible)
                        listVisible.Add(col);
                }
 
                  for (int i = 1; i < listVisible.Count +1; i++)
                 {
                      excel.Cells[1, i] = listVisible[i - 1].HeaderText;
                     excel.Cells[1, i].Interior.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.LightBlue);
                    
                }
                  for (int i = 0; i < advancedDataGridView2.Rows.Count; i++)
                  {
                     for (int j = 0; j < listVisible.Count; j++)
                     {
                         excel.Cells[i + 2, j + 1] = advancedDataGridView2.Rows[i].Cells[listVisible[j].Name].Value;
                        
                    }
        }

но появилась опять другая проблема.
Как можно сделать так чтобы размер столбцов было одинаково с datagridview и в эксель после сохранения.
Теперь у меня так:
C#
1
2
3
4
5
6
7
excel.Columns[1].EntireColumn.ColumnWidth = 4;
excel.Columns[2].EntireColumn.ColumnWidth = 4;
excel.Columns[3].EntireColumn.ColumnWidth = 6;
excel.Columns[4].EntireColumn.ColumnWidth = 14;
excel.Columns[5].EntireColumn.ColumnWidth = 14;
excel.Columns[6].EntireColumn.ColumnWidth = 42;
excel.Columns[7].EntireColumn.ColumnWidth = 52;
Как бы всё ок, но когда я убираю с datagridview ненужные столбцы, то в эксель столбцы меняется тоже но размер столбцов остаются такие как в коде. Как можно сделать размер столбцов по например размеру столбцам из datagridview???

Актуально еще по-прежнему остался вопрос:


У меня на форме есть оранжевые кнопки, нажимая на кнопки в datagridview1 открывается таблица с другими данными.
Открывая форму то автоматом в datagridview1 появляется данные с первой кнопки и копируя с datagridview1 таблицы в datagridview2 то всё ок.
Проблема в том что если я переключаю другую таблицу и хочу данные скопировать в datagridview2, то datagridview2 автоматом очищается. Но мне надо чтобы данные остались от предыдущий таблицы тоже.
0
187 / 100 / 19
Регистрация: 15.09.2011
Сообщений: 801
19.09.2019, 06:34
Цитата Сообщение от Felikss Посмотреть сообщение
Как можно сделать так чтобы размер столбцов было одинаково с datagridview и в эксель после сохранения.
Надо в Excel ставить формат ячеек по размеру колонки.
Примерный код
Кликните здесь для просмотра всего текста
C#
1
2
3
4
var xlApp = new Excel.Application();
var xlWorkBook = xlApp.Workbooks.Add(System.Reflection.Missing.Value);
var xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.Item[1];
xlWorkSheet.Columns.AutoFit(); - авторазмер колонки по содержимому

либо так
Кликните здесь для просмотра всего текста
C#
1
xlWorkSheet.Columns.ColumnWidth = 18;
где вместо 18 нужно подставить своё значение

Добавлено через 32 минуты
Цитата Сообщение от Felikss Посмотреть сообщение
Проблема в том что если я переключаю другую таблицу и хочу данные скопировать в datagridview2, то datagridview2 автоматом очищается. Но мне надо чтобы данные остались от предыдущий таблицы тоже.
Проблема вот в этом:
Цитата Сообщение от Felikss Посмотреть сообщение
advancedDataGridView2.DataSource = table;
Не надо создавать новую таблицу - надо добавлять строки в уже привязанную - вот работающий пример
Кликните здесь для просмотра всего текста
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
public partial class Form1 : Form
    {
        DataTable dt = new DataTable();
 
        public Form1()
        {
            InitializeComponent();
            dt.Columns.Add("1");
            dt.Columns.Add("2");
            var row = dt.NewRow();
            row[0] = "1";
            row[1] = "2";
            dt.Rows.Add(row);
            dataGridView1.DataSource = dt.DefaultView;
        }
 
        private void button1_Click(object sender, System.EventArgs e)
        {
            var row = dt.NewRow();
            row[0] = "3";
            row[1] = "4";
            dt.Rows.Add(row);
        }
    }


Добавлено через 6 минут
Felikss, Вообще, я бы на вашем месте не мучился, а переделал проект под эту библиотеку, так как она кросплатформенная и с ней проще работать.
Ваши спрятанные колонки - что-то напутали с индексами - надо детально проверять - нет времени.
https://github.com/ClosedXML/C... -Worksheet
1
4 / 4 / 0
Регистрация: 21.08.2016
Сообщений: 404
20.09.2019, 10:35  [ТС]
У меня задано что столбец например 1 будет размером 4 а столбец 2 будет размером 25.
Проблема в том что если я убираю столбец 1 и сохраняю в excel то информация с столбца 2 автоматом переходит в столбец 1.
Мне надо чтобы в excel столбец 1 изменил размер на такой как у столбца 2.
один варианты у меня есть, это сделать по условию какому то или когда сохраняешь таблицу в excel, то размер столбцов назначается от datagridview название столбцов - Header Text. Но как сделать не знаю.

Добавлено через 1 час 47 минут
Насчет этого:
Не надо создавать новую таблицу - надо добавлять строки в уже привязанную - вот работающий пример.

Спасибо, всё заработало, но если в datagridview1 отмечаю галочки например информацию по ID 3
и жму кнопку добавить, то всё ок. но если хочу добавить еще информацию например отмечаю ID 5, ID 8, ID 2, то в datagridview2 добовляется еще раз ID 3. почему так?
Перед етим у меня недобовлялся по второму разу.

Добавлено через 8 минут
Забил новый код приложить:
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
 public partial class Form5 : Form
    {
        string connectionString = @"Data Source=KVP-25793;Initial Catalog=EXCEL_TPTHEFTS;Integrated Security=True;TransparentNetworkIPResolution=True";
        string fileExcel;
 
        System.Data.DataTable table = new System.Data.DataTable();
       
 public Form5()
        {
            InitializeComponent();
            
            table.Columns.Add("ID");
            table.Columns.Add("Year");
            table.Columns.Add("Object");
            table.Columns.Add("Date_Time");
            table.Columns.Add("Event");
            table.Columns.Add("Action");
            table.Columns.Add("Link1");
            table.Columns.Add("Link2");
            table.Columns.Add("Link3");
            table.Columns.Add("Link4");
            table.Columns.Add("Link5");
            advancedDataGridView2.DataSource = table;
 
 private void Button2_Click(object sender, EventArgs e)
        { 
            foreach (DataGridViewRow drv in advancedDataGridView1.Rows)
            {
               bool chkboxselect = Convert.ToBoolean(drv.Cells["DGVchkBox1"].Value);
              if (chkboxselect)
              {                  
                    table.Rows.Add(drv.Cells[1].Value, drv.Cells[2].Value, drv.Cells[3].Value,
                   drv.Cells[4].Value, drv.Cells[5].Value, drv.Cells[6].Value, drv.Cells[7].Value,
                   drv.Cells[8].Value, drv.Cells[9].Value, drv.Cells[10].Value, drv.Cells[11].Value);
              }
        }
    }
0
4 / 4 / 0
Регистрация: 21.08.2016
Сообщений: 404
23.09.2019, 07:09  [ТС]
Ех уже замучился, никак не выходит решить проблему.
0
4 / 4 / 0
Регистрация: 21.08.2016
Сообщений: 404
23.09.2019, 15:40  [ТС]
Остался решить только это:

Насчет этого:
Не надо создавать новую таблицу - надо добавлять строки в уже привязанную - вот работающий пример.

Спасибо, всё заработало, но если в datagridview1 отмечаю галочки например информацию по ID 3
и жму кнопку добавить, то всё ок. но если хочу добавить еще информацию например отмечаю ID 5, ID 8, ID 2, то в datagridview2 добовляется еще раз ID 3. почему так?
Перед етим у меня недобовлялся по второму разу.
0
4 / 4 / 0
Регистрация: 21.08.2016
Сообщений: 404
23.09.2019, 17:04  [ТС]
Добавил другой код, но автоматом добавляется первая строка. Где в коде ошибка может быть?

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
private void Button2_Click(object sender, EventArgs e)
        {
            for (int i = 0; i <= advancedDataGridView1.Rows.Count - 1; i++)
            {
                bool rowAlreadyExist = false;
 
                bool checkedCell = Convert.ToBoolean(advancedDataGridView1.Rows[i].Cells[0].Value);
                if (checkedCell = true)
                {
                    DataGridViewRow row = advancedDataGridView1.Rows[i];
                    if (advancedDataGridView2.Rows.Count != 0)
                    {
                        for (int j = 0; j <= advancedDataGridView2.Rows.Count - 1; j++)
                        {
                            if (row.Cells[0].Value == advancedDataGridView2.Rows[j].Cells[0].Value)
                            {
                                rowAlreadyExist = true;
                                break;
                            }
                        }
                        if (rowAlreadyExist == false)
                        {
                            advancedDataGridView2.Rows.Add(row.Cells[0].Value, row.Cells[1].Value,
                            row.Cells[2].Value, row.Cells[3].Value, row.Cells[4].Value, row.Cells[5].Value, row.Cells[6].Value);
                        }
                    }
                    else
                    {
                        advancedDataGridView2.Rows.Add(row.Cells[0].Value, row.Cells[1].Value,
                        row.Cells[2].Value, row.Cells[3].Value, row.Cells[4].Value, row.Cells[5].Value, row.Cells[6].Value);
                    }
                }
 
            }
        }
Миниатюры
Как обработать событие checked в строке DataGridView?  
0
4 / 4 / 0
Регистрация: 21.08.2016
Сообщений: 404
22.10.2019, 05:33  [ТС]
Привет всем!
Появился вопрос.
На форме у меня datagrid и две кнопки одна добавить другая удалить.
В datagrid у меня столбцы ID и DataGridViewButtonColumn
C#
1
2
3
4
5
6
7
8
9
private void button1_Click(object sender, EventArgs e)
        {
            dataGridView1.SelectedCells[11].Style = new DataGridViewCellStyle { Padding = new Padding(int.MinValue / 2) };
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
            dataGridView1.SelectedCells[11].Style = new DataGridViewCellStyle { Padding = new Padding(int.MaxValue / 2) };
        }
Если я удаляю кнопку из datagrid нажав на кнопку удалить, в datagrid она удаляется, всё ok.
Проблема в том eсли закрыть форму и запустить опять то кнопка опять появляется.
Можно ли как то сохранить изменение которые были сделаны перед закривание формы???
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.10.2019, 05:33

Как обработать событие активизация tabPage?
Прошу простить, если задаю элементарный вопрос, но - новичок! Вопрос, собственно, в теме. У меня создаётся впечатление, что события такого...

Как обработать событие в webbrowser только 1 раз?
Добрый день. Подскажите пожалуйста как обработать событие только 1 раз? Обрабатывается один раз потому-что при клике на элемент...

Как обработать событие нажатия Ctrl+key?
Если точнее выразиться, не могу понять как создать такое событие, ну и конечно хэндлер как поставить. Извините если неправильно в чем-то...

Как обработать событие динамически созданной кнопки (по нажатию на неё)?
Есть class House и class Room. В классе House, в поле Rooms хранится массив class Room. Эти кнопки отображают свободен/занят ли...

Как работает событие RowEnter у DataGridView ?
DatagridView RowEnter обрабатываю это событие. Все бы хорошо, но почему это после выбора какой нибудь строки он вызывается несколько раз...


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

Или воспользуйтесь поиском по форуму:
36
Ответ Создать тему
Новые блоги и статьи
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru