如何将int或bool转换为checkState

Pow*_*fet 9 .net c# winforms

我需要将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

根据评论更新:

将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)