每当选择更改时,我想在组合框中获取所选项目的文本。
因此我使用SelectedIndexChanged event
,但组合框文本没有改变。它仍然是空的。
private void myCombobox_SelectedIndexChanged(object sender, EventArgs e)
{
string myTxt = myCombobox.SelectedText; //myTxt is null.
}
当我选择两次相同的项目时,文本会相应更改。
我应该使用其他活动吗? 有任何想法吗?
答案 0 :(得分:0)
如果您在选择后在组合框中查找文本,那么您可能希望执行以下操作:
private void myCombobox_SelectedIndexChanged(object sender, EventArgs e)
{
string myTxt = myCombobox.Text;
}
这将从组合框中获取所有文本,不要忘记在Designer中查看您的代表,以确保在更改组合框后实际发生这种情况
答案 1 :(得分:0)
如果您需要所选索引的文本,则必须使用.Text属性,而不是SelectedText。
对于选择值后,使用SelectionChangeCommited事件。
试试这个:
private void myCombobox_SelectionChangeCommited(object sender, EventArgs e)
{
string myTxt = myCombobox.Text;
}
你也可以测试SelectedItem,不确定它是否能解决空值。
string myTxt = myCombobox.SelectedItem.Text.ToString()
但我认为后者会更多地用于转换问题。试试两者,让我知道它是如何运作的。
答案 2 :(得分:0)
如果你确实需要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;
}
}
答案 3 :(得分:0)
获取Null值的原因是因为您正在使用' SelectedText'属性。要获取当前值,您必须使用Text属性
private void myCombobox_SelectedIndexChanged(object sender, EventArgs e)
{
string cmbTextValue = this.myCombobox.text;
}
希望这能解决问题:)