以下是建议Rufus' Suggestion的帖子,但我似乎无法调用Formtoshowonclosing,因为我只收到空指针异常,我认为第一种形式是正确的,QR
未被阅读?或者表格QR无法读取的方法?它没有抛出任何其他错误。
图例:表格A = QR,先加载,然后隐藏。表格B =帐户,接下来加载,用户选择数据库的条件。按下按钮,关闭帐户并显示QR,关闭时从帐户触发QR的方法并加载数据库。
这是我到目前为止所得到的,告诉我我似乎缺少的东西。
QR上的暴露属性:
public string BUName { get; set; }
public string DOCUName { get; set; }
on public void QR()
InitializeComponent();
this.Hide();
Account AccountForms = new Account();
AccountForms.FormToShowOnClose = this;
AccountForm.ShowDialog();
LoadData(从Account中加载条件以准备Refresher(),这是[Table]中的标准Select *):
public void LoadData()
{
txtBUnow.Text = BUName;
txtDOCUnow.Text = DOCUName;
if (BUName != "")
{
int BUtoQRConv = Convert.ToInt32(BUName);
theDictionary = new DictionaryInit();
DictionaryFindTable(BUtoQRConv, theDictionary.BUtoQRs);
Refresher();
}
}
帐户表单:
public static string passedBU;
public static string passedDOCU;
public QueryRefiner FormToShowOnClose { get; set; }
按下按钮:
passedBU = lblBUitem.Text;
passedDOCU = lblDOCUitem.Text;
this.Close();
表格关闭:
private void Account_FormClosing(object sender, FormClosingEventArgs e)
{
if (FormToShowOnClose != null)
{
Console.WriteLine(passedBU + "!");
FormToShowOnClose.BUName = passedBU;
FormToShowOnClose.DOCUName = passedDOCU;
FormToShowOnClose.LoadData();
FormToShowOnClose.Show();
}
}
就目前而言,没有编译器错误,当它运行时,if语句似乎没有触发,并且当从if语句中提取时,我确实在FormToShowonClose上遇到了一个nullpointer异常。 知道我在这里可能缺少什么吗?据我所知,QR已经初始化,只是隐藏了。
答案 0 :(得分:1)
将此代码移动到QR表格的加载事件处理程序:
this.Hide();
Account AccountForms = new Account();
AccountForms.FormToShowOnClose = this;
AccountForm.ShowDialog();