当我手动更改 SelectedValueChanged 事件中的文本时,Windows 窗体组合框文本不会更新
Posted
技术标签:
【中文标题】当我手动更改 SelectedValueChanged 事件中的文本时,Windows 窗体组合框文本不会更新【英文标题】:Windows Forms Combo Box Text doesn't update when I manually change the text in the SelectedValueChanged Event 【发布时间】:2022-01-07 12:57:03 【问题描述】:我有以下代码
private void cbAddTicketItem_SelectedValueChanged(object sender, EventArgs e)
string[] arr = cbAddTicketItem.Text.Split(' ');
cbAddTicketItem.Text = arr[0];
cbAddTicketItem 是用户从项目列表中选择的组合框。每个项目的文本都包含一个描述。我想摆脱描述,只保留价值。调试显示 cbAddTicketItem.Text 具有正确的值,但表单上的文本没有更改。
我认为问题在于 winforms 没有触发 textChanged 事件,或者在我的编码事件运行后覆盖它。
【问题讨论】:
【参考方案1】:你让生活变得相当辛苦。如果你做这样的事情会更容易:
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
【讨论】:
以上是关于当我手动更改 SelectedValueChanged 事件中的文本时,Windows 窗体组合框文本不会更新的主要内容,如果未能解决你的问题,请参考以下文章
Azure DevOps - 拉取请求 Git “后续步骤:手动解决这些冲突并将新更改推送到源分支。”
如果我使用异步存储,当我更改屏幕时,我的值怎么会重置为 0?