c#combobox使用文本设置值

Agn*_*lec 2 c# combobox windows-forms-designer winforms

我有一个farmRegion我用这种方式填充的组合框

private void fillRegionData() {
            DataTable dt = new DataTable();
            dt.Columns.Add("ID", typeof(int));
            dt.Columns.Add("Description", typeof(string));
            farmRegion.ValueMember = "ID";
            farmRegion.DisplayMember = "Description";
            farmRegion.SelectedValue = "ID";
            for (int i = 0; i < StaticData.RegionNames.Count; i++)
            {
                dt.Rows.Add(StaticData.RegionValues[i], StaticData.RegionNames[i]);
            }
            farmRegion.DataSource = dt;
        }
Run Code Online (Sandbox Code Playgroud)

在哪里StaticData.RegionNames:

public static List<string> RegionNames = new List<string>() { "Select Region", "EASTERN", "WESTERN", "NORTHERN", "EASTERN2", "NORTHERN", "MIDDLE" };
Run Code Online (Sandbox Code Playgroud)

并且StaticDate.RegionValues

public static List<string> RegionValues = new List<string>() { "-10", "1", "2", "3", "4", "5", "6" };
Run Code Online (Sandbox Code Playgroud)

当我保存表单时,我保存了组合框的文本,而不是值(这是一个需求问题).

现在我想再次重新加载comboxbox.我已经知道了文本,但我需要使组合框激活并且选项文本已被选中.

我试过这个:

farmRegion.Text = myText
Run Code Online (Sandbox Code Playgroud)

但仍然选择了第一个选项.

Sum*_*shk 6

在设置文本之前设置farmRegion.Text = myText一个断点并检查combobox数据源,并确保myText存在combobox.

如果您处理了任何events of combobox事件的断点并检查执行farmRegion.Text = myText语句后发生了什么.

这两个步骤无法解决您的问题,然后找出您的文本值的索引

int index = farmRegion.FindString(myText);
farmRegion.SelectedIndex = index;
Run Code Online (Sandbox Code Playgroud)