我有一个带有两个复选框的表,我想取消选中其中一个,而另一个复选框(如RadioButton)。
void DataGridView1CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
DataGridViewCheckBoxCell never = dataGridView1.Rows[e.RowIndex].Cells[1] as DataGridViewCheckBoxCell;
DataGridViewCheckBoxCell once = dataGridView1.Rows[e.RowIndex].Cells[2] as DataGridViewCheckBoxCell;
bool isNeverChecked = (bool)never.EditedFormattedValue;
if(isNeverChecked){
once.Value = "false";
never.Value = "true";
}else{
once.Value = "true";
never.Value = "false";
}
dataGridView1.Refresh();
}
答案 0 :(得分:0)
if(checkbox1.isChecked)
checkbox2.isChecked = false;
与checkbox2相同......
但是你应该将它连接到复选框事件。
此外,如果你使用的是wpf,你可以使用绑定我想
答案 1 :(得分:0)
有类似dgv.Rows[0].Cells[0].Value = true;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
DataGridView dgv = new DataGridView();
public Form1()
{
InitializeComponent();
initours();
checkone();
}
private void checkone()
{
dgv.Rows[0].Cells[0].Value = true;//chekc the one in the first row
}
private void initours()
{
this.Controls.Add(dgv);
dgv.Dock = DockStyle.Fill;
dgv.AutoGenerateColumns = false;
DataGridViewCheckBoxColumn col = new DataGridViewCheckBoxColumn();
dgv.Columns.Add(col);
dgv.Rows.Add();
dgv.Rows.Add();
dgv.Rows.Add();
dgv.Rows.Add();
}
}
}
或使用其他人建议的数据源。
using System.ComponentModel;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form2 : Form
{
DataGridView dgv = new DataGridView();
BindingList<dgvitem> dgvdata = new BindingList<dgvitem>();
public Form2()
{
InitializeComponent();
initours();
//add data
for (int i = 0; i < 10; i++)
{
dgvdata.Add(new dgvitem { checkcol = false, col2 = $"col2 row {i}" });
}
//check one of them
dgvdata[2].checkcol = true;
}
private void initours()
{
this.Controls.Add(dgv);
dgv.Dock = DockStyle.Fill;
dgv.DataSource = dgvdata;
}
}
public class dgvitem
{
public bool checkcol { get; set; }
public string col2 { get; set; }
}
}