Member 10261487 Ответов: 0

Динамическое добавление флажка в datagridview и выбор полных строк путем установки флажка и получения всех выбранных строк из нажатия кнопки


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

И еще, у меня есть кнопка, где я хочу показать сообщение только выбранным флажком.

Мой код для динамического добавления флажка в DataGridView:
DataGridViewCheckBoxColumn checkColumn = new DataGridViewCheckBoxColumn();
             
            this.dtgrid_event_list.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;

            checkColumn.Name = "Check";
            checkColumn.HeaderText = "Check";
            checkColumn.Width = 50;
            checkColumn.FillWeight = 50;
            this.dtgrid_event_list.Columns.Add(checkColumn);
            this.dtgrid_event_list.AllowUserToAddRows = false;
            this.dtgrid_event_list.AllowUserToDeleteRows = false;
            
            this.dtgrid_event_list.DataSource = db.Adapter("select device, event_name, frame, frame_rate, event_duration from alb_events");


Мой Код Строки Выбора:
private void dtgrid_event_list_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.ColumnIndex == 0 && e.RowIndex != -1)
            {
                string point = "";
                Color oldColor = this.dtgrid_event_list.Rows[e.RowIndex].DefaultCellStyle.SelectionBackColor;
                this.dtgrid_event_list.Rows[e.RowIndex].DefaultCellStyle.SelectionBackColor = Color.FromArgb(oldColor.R < 235 ? oldColor.R + 20 : 0,
                                    oldColor.G, oldColor.B);
                foreach (DataGridViewRow drv in this.dtgrid_event_list.Rows)
                {
                    DataGridViewCheckBoxCell chk = (DataGridViewCheckBoxCell)drv.Cells[0];
                    

                    foreach (DataGridViewCell cell in drv.Cells)
                    {
                        if (drv.Index == e.RowIndex)
                        {
                            if (chk.Value == chk.TrueValue)
                            {
                                cell.Style.BackColor = Color.BlueViolet;
                               
                            }
                                
                            if (cell.ColumnIndex == 4)
                            {
                                if(cell.Value.ToString().Length > 2)
                                    point = cell.Value.ToString().Substring(2, 1).ToString();
                                
                            }
                            if (point == ".")
                                cell.Style.BackColor = Color.Red;

                           
                                

                        }

                    }
                }
            }
        }


Теперь, пожалуйста, помогите мне снять флажок row by unchecked Checkbox и показать только выбранные строки, нажав кнопку in.

Что я уже пробовал:

частная btnAddEvent_Click недействительным(объект отправителя, EventArgs в электронной)
{
int count = 1;
по каждому элементу (ячейки datagridviewrow ДРВ в этом.dtgrid_event_list.Строк)
{
DataGridViewCheckBoxCell chkchecking = новый DataGridViewCheckBoxCell();
chkchecking= (DataGridViewCheckBoxCell)drv. Cells[0];
Ящик для сообщений.Шоу (chkchecking.Ценность.Метод toString());

if ((bool) chkchecking.Значение = = true)
{
Ящик для сообщений.Показать (граф.Метод toString());
}

count = count + 1;
}
}

0 Ответов