将ComboBox值传递给另一个表单上的方法c#

时间:2016-05-15 11:25:09

标签: c# combobox

我在调用方法时遇到两个问题。

我有frmForm1& frmForm2。

frmForm1包含如下方法......

public frmForm1()
{
    InitializeComponent();
}

//This method receives the prog name and WOtype names from frmForm2
int progID;
string programName;

public void GetIDandValue(string valName, int ID, string addWOValue)
{
    if (valName == "progName")
    {
        progID = ID;
        programName = addWOValue;
    }
}

private void button1_Click(object sender, EventArgs e)
{
    frmForm2 loadfrmForm2 = new frmForm2();
    loadfrmForm2.Show();
}

然后从frmForm2(从bmn点击frmForm1打开),我试图将值发送回frmForm1上的方法,以便可以使用它们。

private void button1_Click(object sender, EventArgs e)
{
    selectedValueID = Int32.Parse(comboBox1.ValueMember);
    selectedValueName = comboBox1.DisplayMember;

    string valToSend = "progName";

    frmForm1.GetIDandValue(valToSend, selectedValueID, selectedValueName);

    this.Hide();
}

最后,这里是如何初始化combobox1 ......

comboBox1.DisplayMember = dsAddWO.Tables[0].Columns[1].ToString();
comboBox1.ValueMember = dsAddWO.Tables[0].Columns[0].ToString();
comboBox1.DataSource = dsAddWO.Tables[0];
comboBox1.Enabled = true;

问题1)当我尝试填充变量时,combobox1 ValueMember和Displaymember将列标题作为值返回(尽管正确的数据实际显示在表单上的组合框中)。

问题2)我似乎无法从frmForm2调用GetIDandValue方法,intellisense只是没有看到它。

毫无疑问,我正在做一些非常愚蠢的事情。谁能开导我?

2 个答案:

答案 0 :(得分:0)

您可以将progID和programName传递给frmForm2

的构造函数

答案 1 :(得分:0)

这些代码是否在form2上编码?

private void button1_Click(object sender, EventArgs e) { selectedValueID = Int32.Parse(comboBox1.ValueMember); selectedValueName = comboBox1.DisplayMember; string valToSend = "progName"; frmForm1.GetIDandValue(valToSend, selectedValueID, selectedValueName); this.Hide(); }

如果是这样,你最好从1开始得到一个结构,看来你没有。就像你使用form2:frmForm2 loadfrmForm2 = new frmForm2();然后调用方法frmForm1.GetIDandValue(valToSend, selectedValueID, selectedValueName);完全一样From1 frmForm1 =new From1();frmForm1.GetIDandValue(valToSend, selectedValueID, selectedValueName);