我使用Form2更新默認打印機並將字符串發送到Form3。我通常沒有問題從Form1操作並將數據傳遞給Form2或Form3。但無法使用Form2更新Form3!從Form2發送字符串到Form3
真正的名字是:Form1中= Form1中,窗體2 = formUserSettings,Form3 = formViewDwg
這裏是在Form1的代碼,調用窗體2(formUserSettings):
private void configureStartupSettingsToolStripMenuItem_Click(object sender, EventArgs e)
{
formUserSettings frmUsr = new formUserSettings(prnNameString, prnDriverString, prnPortString,
Settings.Default.DefaultPrinter.ToString(), Settings.Default.ViewStyle, Settings.Default.ReCenterEVafterDwgClose,
Settings.Default.SyncListDwgNum, listMain);
frmUsr.ValueUpdated += new ValueUpdatedEventHandler(frmUsr_ValueUpdated); //---added 3-22-12
//frmUsr.ValueUpdated2 += new ValueUpdatedEventHandler(newPrn_ValueUpdated); //---added 4-12-12
frmUsr.ShowDialog();
frmUsr.Close();
}
這裏的內部窗體2的代碼( formUserSettings)試圖將打印機名稱發送到Form3(formViewDwg)。
if (Application.OpenForms.OfType<formViewDwg>().Count() > 0)
{
newEntry = comboPrinters.Items[index].ToString();
formViewDwg frmVd = this.Owner as formViewDwg;
delPassData del = new delPassData(frmVD.passedNewVal);
del(newEntry);
}
else
{
frmVD = new formViewDwg(EViewMethods.currentPartPath, EViewMethods.currentPartNum, EViewMethods.currentDwgNum,
Settings.Default.DefaultPrinter, Settings.Default.DefaultPrinterDriver, Settings.Default.DefaultPrinterPort,
EViewMethods.defaultPrn[0], EViewMethods.defaultPrn[1], EViewMethods.defaultPrn[2], lBox, false, false);
newEntry = comboPrinters.Items[index].ToString();
delPassData del = new delPassData(frmVD.passedNewVal);
del(newEntry);
}
內部Form3(formViewDwg)爲:
public void passedNewVal(string newPrn) // using the delegate "delPassData" declared in formUserSettings
{
try
{
comboPrinter.Text = newPrn;
}
catch
{
}
}
的錯誤是 「代表一個實例方法不能具有空 '這個'」。
可能重複[?如何複製從Form1中到窗體2的文本框的值(http://stackoverflow.com/questions/3384961/how:打印機名稱將作爲構造「字符串prnName」傳遞從form1到form2的複製一個文本框值) – 2012-04-17 21:50:40
我不明白如何有可能的formViewDwg將是formUserSettings的所有者。 – Steve 2012-04-17 21:59:37
我想讓formUserSettings發送新的打印機名稱字符串到formViewDwg。你上面看到的代碼是圍繞第四次嘗試這樣做的。我也用過:string newEntry = comboPrinters.Text; ValueUpdatedEventArgs valueArgs = new ValueUpdatedEventArgs(newEntry); ValueUpdated(this,valueArgs); ValueUpdatedEventArgs valueArgs2 = new ValueUpdatedEventArgs(newEntry); ValueUpdated2(this,valueArgs2); – 2012-04-18 03:17:02