2012-05-08 220 views
1

我有一個數字,我想將它們作爲切換按鈕複選框。每一個都完全獨立於另一個,可以選中或不選中。當用戶點擊複選框/按鈕,它會保持檢查,如果用戶再次點擊,則該複選框/按鈕返回到「未」狀態。複選框/按鈕可以檢查/取消選中?複選框/切換按鈕選擇/取消本身

我一直在努力了很長時間,在網上也搜索,並不能找到一個解決方案。

+0

這是WinForms。 – user1304490

+0

'複選框/按鈕可以選中/取消選中?'。解釋一下。 –

+0

需要一些示例代碼...我不明白你有什麼嘗試? –

回答

0

可以分配給所有的複選框一個共同的事件。將此代碼寫入.cs文件並選擇所有複選框並將此事件分配給checkedChange事件。

private void chkboxes_CheckedChanged(object sender, EventArgs e) 
{ 
    CheckBox chk = (CheckBox)sender; 
    if(!chk.Checked) 
     chk.Checked = true; 
    else 
     chk.Checked = false; 
} 
1

檢查複選框的狀態,每次按鈕被點擊,改變它。

private void toggButton_CheckedChanged(object sender, EventArgs e) 
{ 
    // everytime you click the button checkbox states will change. 
    if(checkBox.Checked) 
    { 
     checkBox.Checked = false; 
    } 
    else 
    { 
     checkBox.Checked = true; 
    } 
} 
0

Ref:CheckBox.CheckState property。
它被讀取並讓你在GUI或通過代碼設置寫屬性。

經過複選框顯示覆選標記。控制器出現凹陷。
未選中複選框爲空。控制似乎提出。
不確定 CheckBox顯示一個複選標記並加陰影。控制顯得平坦。

寫本上選中變化事件,並檢查它的切換或不.. 它會工作作爲像開關一樣..

label1.Text = "ThreeState: " + checkBox1.ThreeState.ToString() + "\n" + "Checked: " + 
checkBox1.Checked.ToString() + "\n" + "CheckState: " + checkBox1.CheckState.ToString(); 

你的問題的回答檢查CheckBox.AutoCheck Property

1

的問題在於複選框/按鈕與「 」一樣總是「顯示」,即,選中時的「藍色」顏色未發生變化 給人的印象是未被選中。 - user1304490

可能會設置CheckBox.ThreeState屬性false幫助。

如果ThreeState屬性設置爲false,則CheckState屬性值只能在代碼中設置爲System.Windows.Forms.CheckState的Indeterminate值,而不能由用戶交互設置。

0

一個非常簡短的命令:

checkBox.Checked = !checkBox.Checked; 
0

當你想一個形式改變複選框狀態太多的複選框,你需要快速可靠的代碼,無需複雜操作。

做它用的最佳方式:

複選框。CheckState

您可以更改使用此代碼檢查框狀態(未選中),例如:

checkbox1.CheckState = CheckState.Unchecked; 
checkbox2.CheckState = CheckState.Unchecked; 
checkbox3.CheckState = CheckState.Unchecked; 

如需進一步閱讀,請this從MSDN。