首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ComboBox SelectedIndexChanged事件:为什么SelectedText属性未更改?

ComboBox SelectedIndexChanged事件:为什么SelectedText属性未更改?
EN

Stack Overflow用户
提问于 2016-05-18 19:46:02
回答 4查看 2.8K关注 0票数 0

每当选择发生更改时,我都希望在combobox中获取所选项目的文本。

因此,我使用SelectedIndexChanged event,但组合框文本不变。它仍然是空的。

代码语言:javascript
复制
private void myCombobox_SelectedIndexChanged(object sender, EventArgs e)
        {
            string myTxt = myCombobox.SelectedText; //myTxt is null.
        }

当我选择两次相同的项目时,文本就会相应地改变。

我应该使用另一个事件吗?有什么想法吗?

EN

回答 4

Stack Overflow用户

发布于 2016-05-18 20:08:04

如果您要查找选中后出现在组合框中的文本,则需要执行以下操作:

代码语言:javascript
复制
private void myCombobox_SelectedIndexChanged(object sender, EventArgs e)
    {
        string myTxt = myCombobox.Text;
    }

这将获取Combobox中的所有文本,不要忘记在设计器中查看您的Delegate,以确保一旦更改了combobox,就会发生这种情况

票数 0
EN

Stack Overflow用户

发布于 2016-05-18 20:08:09

如果需要所选索引的文本,则必须使用.Text属性,而不是SelectedText。

对于选择值之后,请使用SelectionChangeCommited事件。

试试这个:

代码语言:javascript
复制
private void myCombobox_SelectionChangeCommited(object sender, EventArgs e)
{
    string myTxt = myCombobox.Text;
}

您也可以测试SelectedItem,但不确定这是否会解决空值问题。

代码语言:javascript
复制
string myTxt = myCombobox.SelectedItem.Text.ToString()

但我认为后者将更多地用于转换问题。两者都试一试,让我知道它是如何工作的。

票数 0
EN

Stack Overflow用户

发布于 2016-05-18 20:25:06

如果您确实需要ComboBox.SelectedText (我还建议您在决定使用https://msdn.microsoft.com/en-us/library/system.windows.forms.combobox.selectedtext(v=vs.110).aspx之前仔细阅读此属性的说明

代码语言:javascript
复制
private void myCombobox_SelectedIndexChanged(object sender, EventArgs e)
{
    var originalValue = myCombobox.SelectedText;

    var tempCb = sender as ComboBox;
    if(tempCB != null)
    {
        var newValue = tempCb.SelectedText;
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37298660

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档