如何在datagridview的同一单元格中添加复选框和标签?

如何在datagridview的同一单元格中添加复选框和标签?,datagridview,datagridviewcheckboxcell,Datagridview,Datagridviewcheckboxcell,嗨,程序员们, 我需要在同一单元格中添加复选框和标签。我知道怎么做。我可以将datagridviewcolumn设置为复选框,但它只显示复选框,没有显示标签的位置。有人能把我从噩梦中叫醒吗? 提前谢谢。我不相信使用开箱即用的CheckBoxCell就可以做到这一点 下面是一个实现,它对复选框列进行子类化,并进行一些自定义绘制来绘制标签。可以通过各种方式对此进行扩展,例如为标签文本提供绑定(目前需要直接设置标签文本)。我的代码大量借用了 下面是显示用法的代码: private void Form1

嗨,程序员们, 我需要在同一单元格中添加复选框和标签。我知道怎么做。我可以将datagridviewcolumn设置为复选框,但它只显示复选框,没有显示标签的位置。有人能把我从噩梦中叫醒吗?
提前谢谢。

我不相信使用开箱即用的CheckBoxCell就可以做到这一点

下面是一个实现,它对复选框列进行子类化,并进行一些自定义绘制来绘制标签。可以通过各种方式对此进行扩展,例如为标签文本提供绑定(目前需要直接设置标签文本)。我的代码大量借用了

下面是显示用法的代码:

private void Form1_Load(object sender, EventArgs e)
{
    MyDGVCheckBoxColumn col = new MyDGVCheckBoxColumn();
    col.Label = "hippo";
    col.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft;
    this.dataGridView1.Columns.Add(col);
    this.dataGridView1.RowCount = 5;

    foreach (DataGridViewRow row in this.dataGridView1.Rows)
    {
        if (row.Index % 2 == 0)
        {
            ((MyDGVCheckBoxCell)row.Cells[0]).Label = "kitten";
        }
    }
}

您可以使用模板列。把这两个控件都放到winforms中。它在那里可用吗?非常感谢你的帮助。这节省了我的时间。我想问的一件事是,如何在更改DataGridViewCheckBox的checkState时创建事件。@PrakashKunwar为此,你可以使用celldirtystatechanged事件(有其他方法,但我发现这个方法通常是最好的)看看这个问题
private void Form1_Load(object sender, EventArgs e)
{
    MyDGVCheckBoxColumn col = new MyDGVCheckBoxColumn();
    col.Label = "hippo";
    col.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft;
    this.dataGridView1.Columns.Add(col);
    this.dataGridView1.RowCount = 5;

    foreach (DataGridViewRow row in this.dataGridView1.Rows)
    {
        if (row.Index % 2 == 0)
        {
            ((MyDGVCheckBoxCell)row.Cells[0]).Label = "kitten";
        }
    }
}