[英]C# Checkedlistbox if checked
是否可以像在復選框中那樣將 .Checked== 應用於 checkedlistbox?
如果以與復選框一樣的方式進行操作,則它不起作用
if(checkedListBox1.Items[2].Checked==true)
{
}
您需要的是方法GetItemCheckState
。
用法如下:
if(checkedListBox1.GetItemCheckState(2) == CheckState.Checked)
{
}
你可以這樣使用
if (checkedListBox1.CheckedItems.Contains("ItemWithIndex2"))
{
MessageBox.Show("Test");
}
嘗試類似...
checkedListBox1.GetItemChecked(i)
foreach(int indexChecked in checkedListBox1.CheckedIndices) {
// The indexChecked variable contains the index of the item.
MessageBox.Show("Index#: " + indexChecked.ToString() + ", is checked. Checked state is:" +
checkedListBox1.GetItemCheckState(indexChecked).ToString() + ".");
}
GetItemCheckState()
返回一個布爾值。 所以你可以使用如下:
if(checkedListBox1.GetItemCheckState(index) == true)
{
}
其中 index 是一個整數值,表示 CheckedListBox 的行索引
GetItemChecked()
返回一個布爾值。 因此,您可以將其用作以下內容:
if(checkedListBox1.GetItemChecked(index) == true) {
}
其中index
是一個整數值,表示checkedListBox1
的行索引。
你可能正在尋找這樣的東西
foreach(int i in checkedListBox1.SelectedIndices)
{
if(checkedListBox1.GetItemCheckState(i)!=CheckState.Checked)
{
....
}
}
我遇到了一個類似的問題:單擊一個項目時,state 應該從選中/未選中轉換為相反。 我在這里發布事件以及檢查和更改:
CheckedListBox ChkLBox;
private void CheckedListBox_SelectedIndexChanged(object sender, EventArgs e)
{
int SelectedIndex = ChkLBox.SelectedIndex; //
var Item = ChkLBox.Items[SelectedIndex];
bool IsChecked = (ChkLBox.GetItemChecked(ChkLBox.SelectedIndex));
ChkLBox.SetItemChecked(ChkLBox.Items.IndexOf(Item), !IsChecked);
}
checkedListBox1.CheckedItems.Count>0
var itemChecked = checkedListBox1.GetItemChecked(checkedListBox1.SelectedIndex);
我不確定我是否理解你的問題,你想檢查列表框中是否至少有 1 個項目被選中? 如果是這樣,你可以這樣做
if(checkedListBox1.Items.Any(item=>item.Checked))
{
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.