我做了一個勝利表單,並給出一些複選框,顯示可供學生使用的課程,通過欺騙複選框,他將能夠告訴他要執行哪些課程,但是我想在他退出時他檢查三個課程,如果他嘗試檢查第四個複選框,則應該顯示消息框告訴他他不能選擇超過三個,並且不應該檢查第四個複選框。那我該怎麼做呢?有限檢查c中的複選框#
回答
你必須實現一個OnCheckedChange處理程序並將其設置爲每個複選框。 這會根據複選框的狀態增加/減少計數器。
private int checkCounter;
private void OnCheckedChanged(object sender, EventArgs e)
{
// Increase or decrease the check counter
CheckBox box = (CheckBox) sender;
if (box.Checked)
checkCounter++;
else
checkCounter--;
// prevent checking
if (checkCounter == 4)
{
MessageBox.Show("YOU ARE EVIL", "Bad");
box.Checked = false;
}
}
如果達到您的數量,您可以輸出消息框並重置複選框。 就是這樣。
並且不要忘記將此檢查處理程序應用於複選框的所有CheckedChange事件。
使用複選框的CheckChanged event和計數選中的複選框的當前數量的表格上,然後顯示一個消息框,如果它目前超過3
假設你正在使用的WinForms取消觸發事件的複選框,複選框控件有一個OnCheckStateChanged事件。連線您所有複選框的事件以調用另一個功能。在此功能中,您可以跟蹤已選中的方框總數,並顯示一個彈出框讓用戶知道已達到最大值。
我建議您在處理未知數量的選項時使用CheckedListBox。這是一個完整的示例,顯示如何使用ItemCheck事件來限制選擇的總數。
var box = new CheckedListBox
{
Dock = DockStyle.Fill,
CheckOnClick = true
};
box.ItemCheck += (sender, e) =>
{
// is the item being checked when 3 are already checked?
if (e.NewValue == CheckState.Checked && box.CheckedItems.Count == 3)
{
// block the change
e.NewValue = CheckState.Unchecked;
}
};
for (var i = 0; i < 10; i++)
{
box.Items.Add("item " + i);
}
new Form {Controls = {box}}.ShowDialog();
編輯: 您可以通過刪除列表中的邊框,嵌套它GroupBox內,改變背景顏色創建分組的外觀。
box.BorderStyle = BorderStyle.None;
box.BackColor = Control.DefaultBackColor;
box.MultiColumn = true;
box.IntegralHeight = false;
var group = new GroupBox
{
Text = "Options",
Dock = DockStyle.Fill,
Controls = {box}
};
這是一個很好的答案,但我拿了一個groupbox放置複選框,所以我該如何做。 – avirk 2011-04-28 05:56:42
您可以通過將CheckListBox放在GroupBox中並將背景顏色設置爲默認背景色來僞裝它。 – 2011-04-28 06:12:24
您將有火一樣的事件處理程序,所有的CheckedBoxes CheckChanged事件。
CheckBox1.CheckedChanged += new System.EventHandler(MyCheckedChanged)
CheckBox2.CheckedChanged += new System.EventHandler(MyCheckedChanged)
private void MyCheckedChanged(object sender, EventArgs e)
{
CheckBox checkbox = sender as CheckBox;
// Check all the checked items. If already 3 selectec
checkbox.Checked = false;
}
- 1. codedui複選框檢查c#
- 2. 檢查c中複選框的狀態#
- 3. 使用複選框來檢查C#中的其他複選框
- 4. 檢查所有複選框未選中?
- 5. 檢查所有複選框
- 6. 檢查所有複選框
- 7. 檢查所有複選框
- 8. 檢查所有複選框
- 9. 檢查複選框選中
- 10. 「檢查所有」不檢查複選框
- 11. 檢查所有複選框,並檢查數組中的特定複選框
- 12. 檢查一個複選框將檢查數組中的所有複選框
- 13. 如何'檢查'列表中的所有複選框'檢查'單個複選框?
- 14. 限制 - 只檢查一個複選框
- 15. 獲取複選框中dataGridView1檢查C#
- 16. C#檢查是否複選框檢查(可能用戶檢查和取消選中相同的複選框)
- 17. 只有三個複選框中的每一個複選框可用複選框檢查可用jQuery檢查
- 18. Silverlight 4:限制複選框僅限於檢查框
- 19. 檢查複選框jQuery中
- 20. gridview中檢查asp.net複選框檢查
- 21. 檢查複選框
- 22. 複選框:onclick沒有「檢查」框
- 23. 複選框列表只檢查有限的項目
- 24. 檢查與複選框的所有複選框,單擊
- 25. jQuery的:檢查所有複選框
- 26. 檢查所有複選框的問題
- 27. Jquery - 沒有「檢查」的SerializeArray()複選框
- 28. 的jQuery檢查所有複選框
- 29. 檢查所有複選框asp.net jquery的
- 30. 檢查SubCheckbox上的所有複選框
所以我覺得有這個checkcalender適用於所有的CheckedChanged事件只是分配每個複選框的CheckedChanged事件checkBox1_CheckedChanged()事件,然後記下該代碼,你會看到的結果更好的辦法...... .........這個很好的答案。 – avirk 2011-04-28 17:44:24