簡體   English   中英

如何為當前未選擇的列表框設置鼠標單擊?

[英]How to set mouse click for listbox that is not currently selected?

我想創建僅在上一個列表框中單擊某個項目后才出現的多個列表框。 因此,當我在listbox1中選擇一個項目時,它會顯示listbox2的項目,而當我單擊listbox2中的一個項目時,它會顯示列表框3的所有項目,等等。但是之后,我得到以下錯誤:對象引用未設置為對象的實例。 單擊前一個列表框中的項目后,如何設置多個列表框以使其顯示而不會出現錯誤?

    private void Form1_Load(object sender, EventArgs e)
    {
        listBox1.Items.Add(1);
        listBox1.Items.Add(2);
        listBox1.Items.Add(3);
    }

    private void Form1_MouseClick(object sender, MouseEventArgs e)
    {
        string curItem1 = listBox1.SelectedItem.ToString();

        if (curItem1 == "1")
        {
            listBox2.Items.Add(1);

            if(curItem1 == "1")
            {                
                listBox3.Items.Add(1);
            }
            string curItem2 = listBox2.SelectedItem.ToString();
            ///This is where I get the error!
        }
    }

添加后,您需要選擇該項目:

private void Form1_MouseClick(object sender, MouseEventArgs e)
    {
        string curItem1 = listBox1.SelectedItem.ToString();

        if (curItem1 == "1")
        {
            listBox2.Items.Add(1);
            listBox2.SelectedIndex = 0;  //<= This selects the item

            if (curItem1 == "1")
            {
                listBox3.Items.Add(1);
            }
            string curItem2 = listBox2.SelectedItem.ToString();
            ///This is where I get the error!
        }
    }

我也會在這里進行一些檢查,例如。 第一行可能是:

if (listBox1.SelectedItems.Count == 0) return;

在分配listBox2.SelectedItem之前引用了它,這就是為什么收到異常的原因,只需簡單地分配listbox2的SelectedItem屬性即可解決該問題:

string curItem1 = listBox1.SelectedItem.ToString();

if (curItem1 == "1")
{
    listBox2.Items.Add(1);
    listBox2.SelectedItem = 1;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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