将组合框选择传递给另一个获胜形式 c# 中的其他组合框
Pass combobox selection to other combo box in another win form c#
我有 2 个 windows 表单,它们都有相同的组合框和相同的可能选项。我想在单击按钮时将选择从一个组合框传递到另一个组合框。
我成功地将值传递给文本框,但是当涉及到组合框时,我无法弄清楚。
代码示例如下:
表格 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();
}
Form2 - 加载(打开)
private void form2_Load(object sender, EventArgs e)
{
variable1Form2.Text = passTxt.ToString();
CBForm2.SelectedText = passCB;
}
当我用调试器检查时,错误出现在第 2 步中。Form1 为 form2.passCbValue = CBValueForm1.SelectedText;
发送空字符串 ("")
当我尝试使用索引或值时,它需要强制转换,但随后出现无法强制转换的错误。谁能告诉我我做错了什么?
改成:
form2.passCbValue = CBValueForm1.SelectedItem.ToString();
SelectedText 表示当前在具有下拉样式的 ComboBox 的 TextBox 区域中选定的文本(蓝色突出显示的文本)。每次组合框失去焦点时都会清除此选择(当您处于按钮单击事件中时,焦点位于按钮上)。
解决方法是在form1上传递组合的SelectedIndex(如果两个组合以相同的顺序填充相同的项目)
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; }
}
并且在您的 form2 加载事件中
private void form2_Load(object sender, EventArgs e)
{
....
CBValueForm2.SelectedIndex = passCBIndex;
}
我有 2 个 windows 表单,它们都有相同的组合框和相同的可能选项。我想在单击按钮时将选择从一个组合框传递到另一个组合框。 我成功地将值传递给文本框,但是当涉及到组合框时,我无法弄清楚。
代码示例如下:
表格 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();
}
Form2 - 加载(打开)
private void form2_Load(object sender, EventArgs e)
{
variable1Form2.Text = passTxt.ToString();
CBForm2.SelectedText = passCB;
}
当我用调试器检查时,错误出现在第 2 步中。Form1 为 form2.passCbValue = CBValueForm1.SelectedText;
当我尝试使用索引或值时,它需要强制转换,但随后出现无法强制转换的错误。谁能告诉我我做错了什么?
改成:
form2.passCbValue = CBValueForm1.SelectedItem.ToString();
SelectedText 表示当前在具有下拉样式的 ComboBox 的 TextBox 区域中选定的文本(蓝色突出显示的文本)。每次组合框失去焦点时都会清除此选择(当您处于按钮单击事件中时,焦点位于按钮上)。
解决方法是在form1上传递组合的SelectedIndex(如果两个组合以相同的顺序填充相同的项目)
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; }
}
并且在您的 form2 加载事件中
private void form2_Load(object sender, EventArgs e)
{
....
CBValueForm2.SelectedIndex = passCBIndex;
}