将复选框添加到C#中的Datagridview标题,并使用change scrolbar更改复选框的位置

将复选框添加到C#中的Datagridview标题,并使用change scrolbar更改复选框的位置,c#,checkbox,datagridview,C#,Checkbox,Datagridview,我使用这段代码在Datagridview的标题中找到一个复选框。但随着datagridview的scrolbar的更改,复选框的位置也更改了 // customize dataviewgrid, add checkbox column DataGridViewCheckBoxColumn checkboxColumn = new DataGridViewCheckBoxColumn(); checkboxColumn.Width = 30;

我使用这段代码在Datagridview的标题中找到一个复选框。但随着datagridview的scrolbar的更改,复选框的位置也更改了

        // 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);
像这样的图片:


这很容易。我使用这个代码并解决了它

dataGridView1.Columns[0].Frozen = true;

您提到“我使用此代码”,但我在您的帖子中没有看到任何代码。很抱歉,我插入了此代码。不理解您的问题,您在列的标题中添加了一个复选框。滚动条的哪些方面需要帮助?当滚动条移动时,标题中复选框的位置也会改变。我想确定复选框在标题中的位置。不要添加复选框,画一个。