C# 将组合框选择传递给另一个win form c中的其他组合框#

C# 将组合框选择传递给另一个win form c中的其他组合框#,c#,winforms,combobox,C#,Winforms,Combobox,我有两个windows窗体,它们都有相同的组合框,具有相同的可能选择。我想在单击按钮时将选择从一个组合框传递到另一个组合框。 我正在成功地将值传递给文本框,但当涉及到combobox时,我无法理解它 下面是代码示例: 表格2定义 private double passTxt; private string passCB; public double passTxtValue { get { return passTxt; } s

我有两个windows窗体,它们都有相同的组合框,具有相同的可能选择。我想在单击按钮时将选择从一个组合框传递到另一个组合框。 我正在成功地将值传递给文本框,但当涉及到combobox时,我无法理解它

下面是代码示例:

表格2定义

private double passTxt;

private string passCB;

public double passTxtValue
        {
            get { return passTxt; }
            set { passTxt = value; }
        }
public string passCbValue
        {
            get { return passCB; }
            set { passCB = value; }
        }
表格1发送

 private void btnPassValues_Click(object sender, EventArgs e)
        {
            Form2 form2 = new Form2(); 

            form2.passTxtValue = variable1Form1;

            form2.passCbValue = CBForm1.SelectedText;
            form2.Show();
        }
表格2-加载(打开)

当我使用调试器检查时,错误出现在步骤2中。Form1为
form2.passCbValue=CBValueForm1.SelectedText发送空字符串(“”)

当我尝试使用索引或值时,它需要强制转换,但出现了无法强制转换的错误。有人能告诉我我做错了什么吗?

把它改成:

form2.passCbValue = CBValueForm1.SelectedItem.ToString();
在下拉式组合框的文本框区域中表示当前选定的文本(蓝色突出显示的文本)。每当组合框失去焦点时(当您处于按钮单击事件中时,焦点在按钮上),此选择将被清除

解决方法是在form1上传递组合的SelectedIndex(如果两个组合以相同的顺序填充相同的项)

在form2中,更改属性以获取整数而不是字符串

private int passCBIndex;
public int passCbIndex
{
    get { return passCBIndex; }
    set { passCBIndex = value; }
}
在form2加载事件中

private void form2_Load(object sender, EventArgs e)
{
    ....
    CBValueForm2.SelectedIndex = passCBIndex;
}

SelectedText不是您所想的。SelectedText不是所选项目的文本?CBValueForm1是表单1中的组合框。。。我将对其进行编辑并从中删除此“值”。这可能非常适合您,但我个人不会使用selectedindex,因为它依赖于项目相同且排序顺序相同。根据您填充这些组合框的方式,项目的顺序可能略有不同。我的项目中的顺序相同,所有组合框中的对象都相同。。我完全明白,如果有任何不同,这对我没有帮助
private int passCBIndex;
public int passCbIndex
{
    get { return passCBIndex; }
    set { passCBIndex = value; }
}
private void form2_Load(object sender, EventArgs e)
{
    ....
    CBValueForm2.SelectedIndex = passCBIndex;
}