我需要将int和/或bool转换为checkState
int ValueCheck;
private void gsCheck1_CheckedChanged(object sender, EventArgs e)
{
CheckBox box = sender as CheckBox;
box.CheckState = ValueCheck; // doesn't work
this.gsCheck2.CheckState = ValueCheck; // should be 1 or 0 ?
}
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,我想通过更改(this.gsCheck1)CheckState来更改(this.gsCheck2)CheckState,最后得到一个需要的整数值.
更新......问题解决了
private int ValueCheck(CheckState Check)
{
if (Check == CheckState.Checked)
return 1;
else
return 0;
}
private void gs_CheckedChanged(object sender, EventArgs e)
{
CheckBox box = sender as CheckBox;
MessageBox.Show(box.Name + "="+ ValueCheck(box.CheckState).ToString());
}
Run Code Online (Sandbox Code Playgroud)
Shi*_*mmy 12
CheckBox.Checked
哪个是布尔属性.box.CheckState = (CheckState)ValueCheck;
?:
运算符.根据评论更新:
将ValueCheck声明为CheckState:
CheckState ValueCheck;
private void....
Run Code Online (Sandbox Code Playgroud)
或者将int值转换为CheckState值:
this.gsCheck2.CheckState = (CheckState)ValueCheck;
Run Code Online (Sandbox Code Playgroud)
将CheckState值强制转换为int:
CheckState cs = box.CheckState;
int ValueCheck = (int)cs;
string result = "Current state: " + ValueCheck + cs.ToString();
//You question:
MessageBox.Show(box.Name + (int)box.CheckState);
Run Code Online (Sandbox Code Playgroud)
更新
FYI,而不是编写ValueCheck方法,我上面提到了一个C#操作?:
符操作符,您可以这样做:
int result = box.CheckState == CheckState.Checked ? 1 : 0;
Run Code Online (Sandbox Code Playgroud)
这是一个翻译:
int result;
if (box.CheckState == CheckState.Checked)
result = 1;
else
result = 0;
Run Code Online (Sandbox Code Playgroud)