C# 我无法为ComboBox.SelectedIndex或任何其他选定项设置值

C# 我无法为ComboBox.SelectedIndex或任何其他选定项设置值,c#,winforms,combobox,C#,Winforms,Combobox,我叫阿纳尔多,来自巴西,现在我需要学习C 我想创建一个真实的模型或真实的案例来研究 我用的是《公安条例》、《多态性》和《传统》 我有一个frmBase,它有一个单一表单所需的一切,比如DB连接、更改大小等等 下一个实例化frmBase的是frmBaseConsulta,第二个有一个带有两个指南的TabControl,一个指向GridView,另一个用于注册信息 最后,下一个实例化frmBaseConsulta的是frmCadPesCity;我在这个表单中放了一个名为txbCityName的文本框

我叫阿纳尔多,来自巴西,现在我需要学习C

我想创建一个真实的模型或真实的案例来研究

我用的是《公安条例》、《多态性》和《传统》

我有一个frmBase,它有一个单一表单所需的一切,比如DB连接、更改大小等等

下一个实例化frmBase的是frmBaseConsulta,第二个有一个带有两个指南的TabControl,一个指向GridView,另一个用于注册信息

最后,下一个实例化frmBaseConsulta的是frmCadPesCity;我在这个表单中放了一个名为txbCityName的文本框和一个名为cmbState的组合框

组合框由包含状态记录的表填充,如下所示:

    // This script is in the form "frmCadPesCity"
    public void getStates()                                   // 
    {
        BindingSource dbStates = new BindingSource();

        dbStates = dal.openQuery("Select stateid, " +
                                 "       stateAbbreviation || ' - ' ||statename as statename  "+
                                 "  from country.tbstates  " +
                                 " order by stateAbbreviation");

        cmbState.ValueMember = "stateid";
        cmbState.DisplayMember = "statename";            
        cmbState.DataSource = dbStates;
    }

    // "ChildResources" is an abstract method , declared in "frmBaseConsulta"
    // and override when necessary, like thi, in "frmCadPesCity"
    public override void ChildResources()
    {
        // 
        getStates();
    }
在DataGridView中,我选择一条记录[Sam Diego,CA]以更正圣地亚哥,然后单击更新按钮,在txbCityName对象receive Sam Diego中,指南更改为Register,但cmbState保留在第一条记录AK中

遵循更改组合框SelectedIndex值的脚本:

            // Method , declared in "frmBaseConsulta"
            ...
            else if (FocusedElement is ComboBox)
            {
                // Get the value in the table based on the object name
                // getOldEditorValue => "CA - California"
                string sEditorValue = getOldEditorValue(((ComboBox)FocusedElement).Name);
                int iIndexValue = -1;

                // Find IndexValue
                iIndexValue = ((ComboBox)FocusedElement).FindStringExact(sEditorValue);
                ((ComboBox)FocusedElement).SelectedIndex = iIndexValue;
            }
            ...
我尝试了所有可能的选择,但都不起作用,有人能帮我吗

选定索引 选择值 选定文本 选择项

还有一件事,当我以编程方式创建一个TextBox以查看它是否真的在拾取数据时,TextBox的创建是正确的。遵循代码:

                TextBox txtComboBoxResult = new TextBox();
                txtComboBoxResult.Text = sEditorValue + " --> " + iIndexValue.ToString();
                pnlCadastro.Controls.Add(txtComboBoxResult);
求你了,我需要帮助


对不起,我的英语不好…

你的问题不是WPF,而是WinForms。现在在代码中更改为ComboBoxFocusedElement.SelectedIndex=2;查看combobox是否可访问。制作一个图表,显示您正在尝试执行的步骤。图中最能描述您的问题。您谈论的是DataGridView,它是一个WinForms控件,但您也在使用FocusedElement属性,特别是WPF。这是一个主要问题。如果您想在单独的控件中编辑来自网格的记录,那么为什么不将相同的数据绑定到这两个控件上呢?那你就不需要任何代码了。谢谢大家的帮助!