【发布时间】:2021-05-22 09:19:20
【问题描述】:
我有一个带有 ComboBox 的表单,其中填充了 3 个项目。
当我添加语句时:comboBox1.Text = "A";和 comboBox1.DroppedDown = true;
自动选择下拉列表的第一项:comboBox1.Text 显示“Abc”而不是“A”。
代码如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace testComboBox
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
comboBox1 = new ComboBox();
PopulateComboBox();
comboBox1.Location = new Point((this.Width - comboBox1.Width) / 2, 80);
this.Controls.Add(comboBox1);
comboBox1.Text = "A";
comboBox1.DroppedDown = true;
}
ComboBox comboBox1;
private void PopulateComboBox()
{
comboBox1.Items.Add("Abc");
comboBox1.Items.Add("Abcd");
comboBox1.Items.Add("Abcde");
}
private void button_Exit_Click(object sender, EventArgs e)
{
this.Close();
}
}
}
如何禁用自动选择 ComboBox 的 Items 集合中的第一项,以便 comboBox1.Text 显示“A”而不是“Abc”?
我不是在寻找一次性的解决方法。我需要一个通用的解决方案。
【问题讨论】:
-
反转分配:
comboBox1.DroppedDown = true; comboBox1.Text = "A";。将这些行移至Load事件/OnLoad()方法。或OnShown()(可能更好)。 -
@Loathing 非常感谢您的评论。我在线程中看到:Prevent AutoSelect behavior of a ystem.Window.Forms.ComboBox (C#) 扩展类:ComboBoxAutoSelectEx 确实帮助了几个人。我复制了它,它编译得很好。我不得不承认,虽然我不知道该怎么处理它。能否请您发布几行代码以举例说明我如何将其合并到我的程序中并与comboBox1一起使用?非常感谢您的善意、努力和时间。