.net C#下拉列表样式中的ComboBox,如何设置文本?

ffx8fchx  于 2022-12-05  发布在  .NET
关注(0)|答案(4)|浏览(299)

我要使用具有DropDownList样式的ComboBox(使它看起来像一个按钮,这样您就不能输入值)将值插入到文本框中。我希望组合框有一个名为“通配符”的文本标签,当我从列表中选择一个通配符时,选定的值将插入到文本框中,组合框文本仍为“通配符”。我的第一个问题是我不能“当组合框为DropDownList样式时,似乎无法设置文本值。使用属性托盘不起作用,当您单击关闭时,文本值会被清除,添加组合框。Text =“Wildcards”;到form_load也不起作用。有人能帮忙吗?

von4xj4u

von4xj4u1#

您指定的代码:

comboBox.Text = "Wildcards";

...应该可以使用。唯一的原因是您指定的文字不是下拉式方块项目清单中的项目。使用DropDownList样式时,您只能将Text设定为实际出现在清单中的值。
如果您尝试将文本设置为“通配符”,但该项没有出现在列表中,并且无法接受其他解决方案,则可能需要修改代码,并临时添加一项,该项在展开下拉列表时会被删除。
例如,如果您有一个表单,其中包含名为“comboBox1”的下拉式方块,以及一些项目和名为“button1”的按钮,您可以执行类似下列的动作:

private void button1_Click(object sender, EventArgs e)
{
    if (!comboBox1.Items.Contains("Wildcards"))
    {
        comboBox1.Items.Add("Wildcards");
    }

    comboBox1.Text = "Wildcards";
}

private void comboBox1_DropDown(object sender, EventArgs e)
{
    if (comboBox1.Items.Contains("Wildcards"))
        comboBox1.Items.Remove("Wildcards");
}

这是相当快和肮脏的,但通过捕获DropDownClosed事件,您可以清理它一点,添加“通配符”项目回来,根据需要。

p1iqtdky

p1iqtdky2#

您可以在formload或表单建构函式中选取其中一个项目:

public MyForm()
{
    InitializeComponent();

    comboBox.SelectedIndex = 0;
}

private void MyForm_Load(object sender, EventArgs e)
{
    comboBox.SelectedIndex = 0;
}
jvlzgdj9

jvlzgdj93#

试试这个

comboBox1.SelectedValue = "Wildcards";
wooyq4lh

wooyq4lh4#

这可能是一个可能的解决方案:

comboBox1.SelectedValue = comboBox1.Items.FindByText("Wildcards").Value;

相关问题