I know the checkbox size can change like this.
checkBox1.Size = new Size(10, 10);
I want to change the checkbox size in DataGridview with DataGridViewCheckBoxColumn and I tried to inherit DatagridviewCheckboxCell,but ever found any way to do as same.
class DGCBC : DataGridViewCheckBoxColumn
{
    public DGCBC()
    {
        this.CellTemplate = new DatagridviewCheckboxCustomCell();
    }
    class DatagridviewCheckboxCustomCell : DataGridViewCheckBoxCell
    {
        public int row_index { get; set; }
        /// <summary>   
        /// constructor   
        /// </summary>   
        /// 
        public DatagridviewCheckboxCustomCell()
        {
        }
        protected override void Paint(Graphics graphics, Rectangle clipBounds, Rectangle cellBounds, int rowIndex, DataGridViewElementStates elementState,
         object value, object formattedValue, string errorText, DataGridViewCellStyle cellStyle, DataGridViewAdvancedBorderStyle advancedBorderStyle,
         DataGridViewPaintParts paintParts)
        {
            *//I tried many way in there,but it's not work*
            base.Paint(graphics, clipBounds, cellBounds, rowIndex, elementState, value, formattedValue, errorText, cellStyle, advancedBorderStyle, paintParts);
        }
    }
}
To draw system controls in the current style of your machine you should use one of the many handy methods of the ControlPaint class.
Here is an example to draw three Checkboxes onto a Panel:

private void panel1_Paint(object sender, PaintEventArgs e)
{
    ControlPaint.DrawCheckBox(e.Graphics, 11, 11, 22, 22, ButtonState.Checked);
    ControlPaint.DrawCheckBox(e.Graphics, 11, 44, 33, 33, ButtonState.Checked);
    ControlPaint.DrawCheckBox(e.Graphics, 11, 88, 44, 44, ButtonState.Checked);
}
Of course you need to adapt this in your CellPainting event to use the size you want and the coordinates of your cell!
Here is a simple example that pretty much fills the cell with the CheckBox:

private void dataGridView1_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
{
    if (e.ColumnIndex == 1 && e.RowIndex >= 0)
    {
        e.PaintBackground(e.CellBounds, true);
        ControlPaint.DrawCheckBox(e.Graphics, e.CellBounds.X + 1, e.CellBounds.Y + 1, 
            e.CellBounds.Width - 2, e.CellBounds.Height - 2,
            (bool) e.FormattedValue ? ButtonState.Checked : ButtonState.Normal);
        e.Handled = true;
    }
You will want to find a size that suits your needs..
Note that you can combine some ButtonState. So to achieve a flat appearance, which is the default for DataGridView CheckBoxCells you can write ButtonState.Checked | ButtonState.Flat etc..:
ControlPaint.DrawCheckBox(e.Graphics, 11, 11, 22, 22, ButtonState.Checked);
ControlPaint.DrawCheckBox(e.Graphics, 11, 44, 33, 33, ButtonState.Checked | ButtonState.Flat);
ControlPaint.DrawCheckBox(e.Graphics, 11, 88, 44, 44, ButtonState.Checked | ButtonState.Flat | ButtonState.Inactive);

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With