我在调用方法时遇到两个问题。
我有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只是没有看到它。
毫无疑问,我正在做一些非常愚蠢的事情。谁能开导我?
答案 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);