WinForms ComboBox: текст против выбранного текста - PullRequest
6 голосов
/ 21 февраля 2011

В моем приложении WinForms / C # я могу выбрать Combobox.Text или Combobox.SelectedText, чтобы вернуть строковое значение того, что было выбрано. Какая разница, и когда я выберу одно из другого?

Ответы [ 4 ]

10 голосов
/ 22 февраля 2011

SelectedText - это то, что выделено.В зависимости от свойства DropDownStyle пользователи могут выбрать часть видимого текста.

Например, если параметры:

  • Демократ
  • Республиканец
  • Независимый
  • Другой

Пользователь может выбрать буквы "Dem" в демократическом - это будет SelectedText.Это работает с ComboBoxStyle.Simple или ComboBoxStyle.DropDown, но НЕ с ComboBoxStyle.DropDownList, поскольку третий стиль не позволяет выбирать часть видимого элемента (или добавлять новые элементы).

http://msdn.microsoft.com/en-us/library/system.windows.forms.combobox.selectedtext.aspx

http://msdn.microsoft.com/en-us/library/system.windows.forms.comboboxstyle.aspx

Однако, используя свойство Text, вы можете предварительно выбрать опцию (например, установив для Text значение «Other», вы можете выбрать последний элемент.)

http://msdn.microsoft.com/en-us/library/system.windows.forms.combobox.text.aspx

3 голосов
/ 22 февраля 2011

Мне легче увидеть разницу с помощью текстового поля:

    private void Form1_Load(object sender, EventArgs e)
    {
        textBox1.Text = "Text in combo box 1";
        textBox2.Text = "Text in combo box 2";
        button1.Focus();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        MessageBox.Show(textBox2.SelectedText);
    }

В textbox2 выделите часть текста и нажмите кнопку.

Я использовал это раньше для примитивных проверок правописания, когда вы хотите выделить только часть текстового поля (не все значение)

0 голосов
/ 02 февраля 2016

Если вы хотите прочитать текст элемента, который находится в выпадающем списке, вы можете использовать [comboboxname].SelectedItem.ToString().

Если вы хотите прочитать значение элемента, используйте [comboboxname].SelectedValue.

0 голосов
/ 31 декабря 2013

Попробуйте это. Это помогает, когда для свойства DropDownStyle установлено значение DropDownList.

public string GetProdName(int prodID)
{
    string s = "";
    try
    {
        ds = new DataSet();
        ds = cmng.GetDataSet("Select ProductName From Product where ProductID=" + prodID + "");
        if (cmng.DSNullCheck(ds) && cmng.DSRowCheck(ds))
        {
            s = ds.Tables[0].Rows[0][0].ToString();
        }
    }
    catch {
    }
    return s;
}

В событии клика:

lblProduct.Text = GetProdName((int)ddlProduct.SelectedValue);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...