C# winform 复选框仍处于选中状态
C# winform checkbox still checked
在按钮点击功能中,我设置了checkbox.check = false;
但是当我再次点击按钮时,复选框仍然处于选中状态
这是我的代码:
// Header全選加上CheckBox
System.Drawing.Rectangle rect = dataGridView1.GetCellDisplayRectangle(0, -1, true);
rect.X = rect.Location.X + rect.Width / 4 - 9;
rect.Y = rect.Location.Y + (rect.Height / 2 - 9);
SolidBrush solidBrush = new SolidBrush(Color.White);
System.Windows.Forms.CheckBox checkBox = new System.Windows.Forms.CheckBox();
checkBox.Name = "checkBoxHeader";
checkBox.Size = new Size(18, 18);
checkBox.Location = rect.Location;
//checkBox.AutoCheck = false;
//MessageBox.Show(checkBox.Checked.ToString());
checkBox.Checked = false;
checkBox.Invalidate();
checkBox.Update();
dataGridView1.RefreshEdit();
checkBox.CheckedChanged += new EventHandler(checkBox_CheckedChanged);
dataGridView1.Controls.Add(checkBox);
我将 MessageBox 设置为显示复选框值,但该值为“False”
如何设置点击按钮时不勾选复选框?
非常感谢
在按钮单击方法中,您实例化了一个新的复选框,并且它的状态始终设置为 false。您必须实例化复选框并在表单的构造函数中设置它的属性,或者您可以在使用设计器时将复选框拖到表单上。
示例
private Checkbox _checkbox;
public Form1()
{
InitializeComponents();
_checkbox = new CheckBox();
//set properties
_checkbox.Checked = true;
//other properties you want to set
//add checkbox to your form for example
datagridview1.Controls.Add(_checkbox);
}
然后在你的按钮点击方法中写:
_checkbox.Checked = false;
谢谢回答,我解决了这个问题
我设置代码为
foreach (Control ckb in dataGridView1.Controls)
{
if (ckb is System.Windows.Forms.CheckBox)
{
((System.Windows.Forms.CheckBox)ckb).Checked = false;
}
}
当我再次单击按钮时复选框未选中
在按钮点击功能中,我设置了checkbox.check = false;
但是当我再次点击按钮时,复选框仍然处于选中状态
这是我的代码:
// Header全選加上CheckBox
System.Drawing.Rectangle rect = dataGridView1.GetCellDisplayRectangle(0, -1, true);
rect.X = rect.Location.X + rect.Width / 4 - 9;
rect.Y = rect.Location.Y + (rect.Height / 2 - 9);
SolidBrush solidBrush = new SolidBrush(Color.White);
System.Windows.Forms.CheckBox checkBox = new System.Windows.Forms.CheckBox();
checkBox.Name = "checkBoxHeader";
checkBox.Size = new Size(18, 18);
checkBox.Location = rect.Location;
//checkBox.AutoCheck = false;
//MessageBox.Show(checkBox.Checked.ToString());
checkBox.Checked = false;
checkBox.Invalidate();
checkBox.Update();
dataGridView1.RefreshEdit();
checkBox.CheckedChanged += new EventHandler(checkBox_CheckedChanged);
dataGridView1.Controls.Add(checkBox);
我将 MessageBox 设置为显示复选框值,但该值为“False”
如何设置点击按钮时不勾选复选框?
非常感谢
在按钮单击方法中,您实例化了一个新的复选框,并且它的状态始终设置为 false。您必须实例化复选框并在表单的构造函数中设置它的属性,或者您可以在使用设计器时将复选框拖到表单上。
示例
private Checkbox _checkbox;
public Form1()
{
InitializeComponents();
_checkbox = new CheckBox();
//set properties
_checkbox.Checked = true;
//other properties you want to set
//add checkbox to your form for example
datagridview1.Controls.Add(_checkbox);
}
然后在你的按钮点击方法中写:
_checkbox.Checked = false;
谢谢回答,我解决了这个问题
我设置代码为
foreach (Control ckb in dataGridView1.Controls)
{
if (ckb is System.Windows.Forms.CheckBox)
{
((System.Windows.Forms.CheckBox)ckb).Checked = false;
}
}
当我再次单击按钮时复选框未选中