在C#中获取组合框文本

Vor*_*ler 6 .net c# combobox winforms

我用Enum的值填充了一个组合框.

现在组合框是正确的吗?所以我正在使用一个吸气剂和一个二传手.我在阅读文本时遇到了问题.

这是代码:

public BookType type
{
    get
    {
        return (BookType)Enum.Parse(typeof(BookType), this.typeComboBox.Text);
    }
    set
    {
        this.typeComboBox.Text = value.ToString();
    }
}
Run Code Online (Sandbox Code Playgroud)

出于某种原因,this.typeComboBox.Text当我在组合框中选择一个项目时,总是返回一个空字符串.

有人看到我做错了吗?

编辑:我得出结论,问题在于时机.我召唤文本的时间点确实是在我更改了组合框后,但仍然在该值被解析为值之前.现在以不同的方式解决问题,感谢所有的想法.

Muh*_*edh 34

试试这个.这对我有用.

string selectedText = this.ComboBox.GetItemText(this.ComboBox.SelectedItem);
Run Code Online (Sandbox Code Playgroud)

GetItemText方法分析项目并返回绑定到该项目的文本.


Roh*_*est 0

我刚刚创建了一个简单的 Windows 窗体,一切正常。这是代码。

public enum Test
{
    One, Two, Three
}

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();

        this.comboBox1.DataSource = Enum.GetNames(typeof(Test));
    }

    public Test Test
    {
        get 
        {
            return (Test)Enum.Parse(typeof(Test), this.comboBox1.Text);
        }
        set
        {
            this.comboBox1.Text = value.ToString();
        }
    }

    private void button1_Click(object sender, EventArgs e)
    {
        MessageBox.Show(this.Test.ToString());

        this.Test = Test.Two;

        MessageBox.Show(this.Test.ToString());
    }
}
Run Code Online (Sandbox Code Playgroud)