Место общения программистов C#
Anonymous
Добавьте флажок в заголовок Datagridview в C# и измените место флажка с помощью полосы прокрутки изменения.
Сообщение
Anonymous » 23 фев 2026, 18:03
Я использую этот код, чтобы найти флажок в заголовке Datagridview. Но при изменении полосы прокрутки datagridview расположение флажка изменилось.
Код: Выделить всё
// customize dataviewgrid, add checkbox column
DataGridViewCheckBoxColumn checkboxColumn = new DataGridViewCheckBoxColumn();
checkboxColumn.Width = 30;
checkboxColumn.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
dataGridView1.Columns.Insert(0, checkboxColumn);
// add checkbox header
Rectangle rect = dataGridView1.GetCellDisplayRectangle(0, -1, true);
// set checkbox header to center of header cell. +1 pixel to position correctly.
rect.X = rect.Location.X + 8;
rect.Y = rect.Location.Y + 10;
rect.Width = rect.Size.Width;
rect.Height = rect.Size.Height;
CheckBox checkboxHeader = new CheckBox();
checkboxHeader.Name = "checkboxHeader";
checkboxHeader.Size = new Size(15, 15);
checkboxHeader.Location = rect.Location;
checkboxHeader.CheckedChanged += new EventHandler(checkboxHeader_CheckedChanged);
dataGridView1.Controls.Add(checkboxHeader);
Поставьте лайк этому изображению:
Подробнее здесь:
https://stackoverflow.com/questions/247 ... ckbox-with
1771858985
Anonymous
Я использую этот код, чтобы найти флажок в заголовке Datagridview. Но при изменении полосы прокрутки datagridview расположение флажка изменилось. [code] // customize dataviewgrid, add checkbox column DataGridViewCheckBoxColumn checkboxColumn = new DataGridViewCheckBoxColumn(); checkboxColumn.Width = 30; checkboxColumn.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; dataGridView1.Columns.Insert(0, checkboxColumn); // add checkbox header Rectangle rect = dataGridView1.GetCellDisplayRectangle(0, -1, true); // set checkbox header to center of header cell. +1 pixel to position correctly. rect.X = rect.Location.X + 8; rect.Y = rect.Location.Y + 10; rect.Width = rect.Size.Width; rect.Height = rect.Size.Height; CheckBox checkboxHeader = new CheckBox(); checkboxHeader.Name = "checkboxHeader"; checkboxHeader.Size = new Size(15, 15); checkboxHeader.Location = rect.Location; checkboxHeader.CheckedChanged += new EventHandler(checkboxHeader_CheckedChanged); dataGridView1.Controls.Add(checkboxHeader); [/code] Поставьте лайк этому изображению: [img]https://i.sstatic.net/i0Pls.jpg[/img] Подробнее здесь: [url]https://stackoverflow.com/questions/24764405/add-checkbox-to-datagridview-header-in-c-sharp-and-change-place-of-checkbox-with[/url]