簡體   English   中英

知道在C#中選擇組合框中的哪個選項?

[英]Know what option in combobox is selected in C#?

我有一個組合框並且有一個列表中的東西......列表中的東西數量沒有設置。 它正在從文件夾中收集數據,你可以在組合框中有無限的(有點誇張)數量的項目......我怎么知道用戶選擇哪個選項?

我嘗試了下面的代碼,但它不起作用。 我是C#的新手,不知道我做錯了什么。

        comboBox1.SelectedIndex = 0;
        comboBox1.Refresh();

        if(comboBox1.SelectedIndex = 0)
        {
           //setting the path code goes here
        }

要比較C#中的值,您需要使用“==”而不是“=”

if(comboBox1.SelectedIndex == 0) 
{ 
   //setting the path code goes here 
} 

使用ComboBox.SelectedItem屬性。

編輯:顯然我正在尋找快速回答而不是好的信息,我正在添加更多信息以使這更容易閱讀

每次選擇更改時,組合框都會觸發一個事件。 在設計器中選擇您的組合框,然后選擇事件選項卡並雙擊SelectionChanged。

如果您只需要訪問已經選擇的內容,可以使用按鈕單擊,您可以使用Rahul聲明

Button1_Click(...)
{ 
    MessageBox.Show(comboBox1.SelectedItem.ToString()); 
}

或者,如果您只想訪問當前在組合框中顯示的文本

Button1_Click(...)
{ 
    MessageBox.Show(comboBox1.SelectedText); 
}

當您使用=運算符時,它將右側設置為左側,結果是右側(也設置左側)。

當您使用==運算符時,它會檢查右側是否等於左側,結果是bool(true / false)。

int i = 10;
int j = 40;

Console.WriteLine(i == j); // false
Console.WriteLine(i); // 10
Console.WriteLine(j); // 40
Console.WriteLine(i = j); // 40
Console.WriteLine(i); // 40
Console.WriteLine(i == j); // true

因此,在開始時,您將SelectedIndex設置為0,您可能不想這樣做,因為您想知道用戶選擇了哪個索引。

因此,如果您要更改SelectedIndex,您將無法知道用戶選擇了什么。

你需要的條件是:

if (comboBox1.SelectedIndex == 0)
{
    // Selected item is item 0
}

當你這樣做時:

if (comboBox1.SelectedIndex = 0)
{
}

實際發生的是SelectedIndex設置為0,然后編譯器嘗試將0轉換為布爾值(因為它在if條件內),這將導致編譯錯誤。

暫無
暫無

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

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