winforms 将组合框选择传递到另一个win窗体中的其他组合框c#

xriantvc  于 2023-02-16  发布在  其他
关注(0)|答案(3)|浏览(220)

我有2个窗口窗体,他们都有相同的组合框与相同的可能选择。我想通过选择从一个组合框到另一个按钮点击。我传递值成功地文本框,但当谈到组合框,我不能弄清楚。
下面是代码示例:
表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();
        }

Form 2-加载(打开)

private void form2_Load(object sender, EventArgs e)
        {
            variable1Form2.Text = passTxt.ToString(); 
            CBForm2.SelectedText = passCB;
        }

当我使用调试器检查时,错误出现在步骤2。Form 1为form2.passCbValue = CBValueForm1.SelectedText;发送空字符串(“”)
当我尝试使用索引或值时,它需要强制转换,但是出现了一个错误,它不能被强制转换。有人能告诉我我做错了什么吗?

vjhs03f7

vjhs03f71#

SelectedText表示DropDown样式的ComboBox的TextBox区域中当前选定的文本(蓝色突出显示的文本)。每次ComboBox失去焦点时(当您处于按钮单击事件中时,焦点在按钮上),此选择将被清除。
解决方法是在form1上传递combo的SelectedIndex(如果两个combo以相同的顺序填充相同的项)

private void btnPassValues_Click(object sender, EventArgs e)
{
    Form2 form2 = new Form2(); 
    form2.passTxtValue = variable1Form1;
    form2.passCbIndex = CBValueForm1.SelectedIndex;
    form2.Show();
}

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

private int passCBIndex;
public int passCbIndex
{
    get { return passCBIndex; }
    set { passCBIndex = value; }
}

在form2Load事件中

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

vcudknz32#

将其更改为:

form2.passCbValue = CBValueForm1.SelectedItem.ToString();
u1ehiz5o

u1ehiz5o3#

//Declare a Global string variable in the Form1
public String testValue;

//Assign the value had in the origin comboBox
testValue = cboOriginValue.Text;

//Create an Form2 Object Type and assign the value in the variable testValue
//to either the textbox or combobox components
Form2 form2 = new Form2();
//Make it visible 
form2.Visible = true;
form2.cboVehiculo.Text = tipoAutomovil;
form2.txtRecibe.Text = tipoAutomovil;

当你点击一个按钮或者执行这些代码行时,你会得到文本框或者组合框组件,其中填充了选定的值。
希望能有所帮助

相关问题