gpt4 book ai didi

c# - 在datagridview中如何使用复选框作为单选按钮?

转载 作者:行者123 更新时间:2023-11-30 14:56:35 28 4
gpt4 key购买 nike

IDE:Visual Studio c#、Winforms 应用程序。

我已经投入了大约 12 个小时,但没有获得成功。由于 DataGridView 不提供单选按钮类型的单元格。所以我正在尝试将复选框单元格用作单选按钮功能。

即我只想选中一列中的一个复选框。

看图:

enter image description here

这看起来很简单,但请相信我,它并不像我们想象的那么简单。在给出答复之前,请测试代码。

这是我尝试过的示例测试代码:

代码 1

////start
if (e.RowIndex != -1)
{
if (dataGridView1.Rows[e.RowIndex].Cells[0].Value != null && dataGridView1.CurrentCell.ColumnIndex == 0) //null check
{
if (e.ColumnIndex == 0)
{
if (((bool)dataGridView1.Rows[e.RowIndex].Cells[0].Value == true))
{

for (int k = 0; k <= 4; k++)
{
//uncheck all other checkboxes but keep the current as checked
if (k == dataGridView1.CurrentRow.Index)
{
dataGridView1.Rows[k].Cells[0].Value = false;
}
//if (gvTeam1.Rows[k].Cells[2].Selected != null)
//if(k !=e.RowIndex)

}

// gvTeam1.Rows[e.RowIndex].Cells[2].Value = false; // keep the current captain box checked
}
}
//}


// gvTeam1.Rows[rowPointerTeam1].Cells[2].Value = true;
}
}
//end
// here gvTeam1 is Datagridview1

代码 2:在 datagridview1 上测试

private void dataGridView1_CurrentCellDirtyStateChanged(object sender, EventArgs e)
{
if (dataGridView1.CurrentCell.ColumnIndex == 0)
{
for (int i = 0; i < 8; i++)
{
//if (i != dataGridView1.CurrentCell.RowIndex)
dataGridView1.Rows[i].Cells[0].Value = false;

}
dataGridView1.Rows[dataGridView1.CurrentCell.RowIndex].Cells[0].Value = true;
}
}

最佳答案

    private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
//clean al rows
foreach (DataGridViewRow row in dataGridView1.Rows)
{
row.Cells["Select"].Value = false;
}

//check select row
dataGridView1.CurrentRow.Cells["Select"].Value = true;
}

关于c# - 在datagridview中如何使用复选框作为单选按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22471757/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com