从另一个窗体调用组合框

本文关键字:组合 调用 窗体 另一个 | 更新日期: 2023-09-27 18:34:16

我在form1上有一个组合框,我需要在form2上调用它来获取用户选择。有人可以给我一个如何做到这一点的例子吗?

编辑:忘了解释我想做什么。我有一个只读文本框。用户单击"编辑"以编辑文本,但我希望在调用 form2 时立即弹出他们想要/选择编辑的文本。

我在表单 1 上有此代码

    public string SelectedComboValue
    {
        get { return comboBox1.SelectedItem.ToString(); }
    }

而表单 2 上的此代码

    EDIT: Added Form1 form1 = null; BUT its still not returning the SelectedComboValue
    public Form2(Form1 parentForm1) : this()
    {
         form1 = parentForm1;
    }

但它给了我一个错误,说 form1 不在此上下文中

从另一个窗体调用组合框

我想 Form1 是 Form2 的父级,所以当你创建 Form2 时,你会使用这样的代码

Form2 f = new Form2(this);

那么在 Form2 类中,你应该有一个这样的声明

Form1 _parentForm = null;

和在 Form2 构造函数中

public Form2(Form1 parentForm1) 
{          
    _parentForm = parentForm1;     
} 

如果这是真的,那么你可以打电话

_parentForm.SelectedComboValue ;

获得所需的结果

在 C# 中表格 2:在此处创建组合框

public string strDecVal{
 set{ combobox1.text = value; }
}

在表格 1 中:例如,您有一个文本框和一个将转到 Form2 的按钮

将这些代码放在按钮上

Form2 frmShow = new Form2(); //Calling the form2
frmShow.strDecVal = textbox1.text;
frmShow.ShowDialog;

在 VB 中,它的自动化程度要高得多:

表格1:文本框和按钮在单击窗体 1 中的按钮时输入代码:

Form2.Show()

在窗体 2 中:在加载上放置此代码:

ComboBox1.Text = Form1.TextBox1.Text

你可以像这样包装组合框 ComboBox 类的一个对象:

internal static ComboBox CB=comboBox1;

然后,可以在其他窗体中调用它,并访问 ComboBox 类的所有方法和属性。如果要将项目添加到该CB,则可以像在父窗体中一样轻松完成。无论是内部的还是静态的,都只是为了示例。