每当选择发生更改时,我都希望在combobox中获取所选项目的文本。
因此,我使用SelectedIndexChanged event,但组合框文本不变。它仍然是空的。
private void myCombobox_SelectedIndexChanged(object sender, EventArgs e)
{
string myTxt = myCombobox.SelectedText; //myTxt is null.
}当我选择两次相同的项目时,文本就会相应地改变。
我应该使用另一个事件吗?有什么想法吗?
发布于 2016-05-18 20:08:04
如果您要查找选中后出现在组合框中的文本,则需要执行以下操作:
private void myCombobox_SelectedIndexChanged(object sender, EventArgs e)
{
string myTxt = myCombobox.Text;
}这将获取Combobox中的所有文本,不要忘记在设计器中查看您的Delegate,以确保一旦更改了combobox,就会发生这种情况
发布于 2016-05-18 20:08:09
如果需要所选索引的文本,则必须使用.Text属性,而不是SelectedText。
对于选择值之后,请使用SelectionChangeCommited事件。
试试这个:
private void myCombobox_SelectionChangeCommited(object sender, EventArgs e)
{
string myTxt = myCombobox.Text;
}您也可以测试SelectedItem,但不确定这是否会解决空值问题。
string myTxt = myCombobox.SelectedItem.Text.ToString()但我认为后者将更多地用于转换问题。两者都试一试,让我知道它是如何工作的。
发布于 2016-05-18 20:25:06
如果您确实需要ComboBox.SelectedText (我还建议您在决定使用https://msdn.microsoft.com/en-us/library/system.windows.forms.combobox.selectedtext(v=vs.110).aspx之前仔细阅读此属性的说明
private void myCombobox_SelectedIndexChanged(object sender, EventArgs e)
{
var originalValue = myCombobox.SelectedText;
var tempCb = sender as ComboBox;
if(tempCB != null)
{
var newValue = tempCb.SelectedText;
}
}https://stackoverflow.com/questions/37298660
复制相似问题