当我手动更改 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 窗体组合框文本不会更新的主要内容,如果未能解决你的问题,请参考以下文章

手动更改后重新计算 SVN 转储中的校验和

Azure DevOps - 拉取请求 Git “后续步骤:手动解决这些冲突并将新更改推送到源分支。”

git merge 后打字稿更改未编译

如果我使用异步存储,当我更改屏幕时,我的值怎么会重置为 0?

更改'当我按下Ctrl键时显示指针的位置'来自代码的Windows设置

手动重新计算“计算属性”