Windows 当我手动更改 SelectedValueChanged 事件中的文本时,表单组合框文本没有更新
Windows Forms Combo Box Text doesn't update when I manually change the text in the SelectedValueChanged Event
我有以下代码
private void cbAddTicketItem_SelectedValueChanged(object sender, EventArgs e)
{
string[] arr = cbAddTicketItem.Text.Split(' ');
cbAddTicketItem.Text = arr[0];
}
cbAddTicketItem 是用户从项目列表中进行选择的组合框。每个项目的文本都包含一个描述。我想摆脱描述,只保留价值。调试显示 cbAddTicketItem.Text 具有正确的值,但表单上的文本没有更改。
我认为问题是 winforms 没有触发 textChanged 事件,或者它在我的编码事件运行后覆盖它。
你让生活变得相当辛苦。如果你这样做会更容易:
var dt - new DataTable();
dt.Columns.Add("Disp");
dt.Columns.Add("Val");
dt.Rows.Add("Mark","1");
dt.Rows.Add("Luke","2");
dt.Rows.Add("John","3");
someCombo.DisplayMember = "Disp";
someCombo.ValueMember = "Val";
someCombo.DataSource = dt;
然后在点击某个按钮时,比方说:
MessageBox.Show((string)someCombo.SelectedValue); //shows 2 if Luke is selected, etc
我有以下代码
private void cbAddTicketItem_SelectedValueChanged(object sender, EventArgs e)
{
string[] arr = cbAddTicketItem.Text.Split(' ');
cbAddTicketItem.Text = arr[0];
}
cbAddTicketItem 是用户从项目列表中进行选择的组合框。每个项目的文本都包含一个描述。我想摆脱描述,只保留价值。调试显示 cbAddTicketItem.Text 具有正确的值,但表单上的文本没有更改。
我认为问题是 winforms 没有触发 textChanged 事件,或者它在我的编码事件运行后覆盖它。
你让生活变得相当辛苦。如果你这样做会更容易:
var dt - new DataTable();
dt.Columns.Add("Disp");
dt.Columns.Add("Val");
dt.Rows.Add("Mark","1");
dt.Rows.Add("Luke","2");
dt.Rows.Add("John","3");
someCombo.DisplayMember = "Disp";
someCombo.ValueMember = "Val";
someCombo.DataSource = dt;
然后在点击某个按钮时,比方说:
MessageBox.Show((string)someCombo.SelectedValue); //shows 2 if Luke is selected, etc