簡體   English   中英

C# Checkedlistbox 如果選中

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM