c#在一种表单上公开公共方法/属性,然后从另一种形式调用它们



这是建议鲁弗斯的建议的线程,但是我似乎无法称呼formtoshowonclosing,因为我只是收到无效的指针例外,我认为我是对的。第一种形式,QR没有被读取?还是表单QR的方法无法读取?它没有丢下其他错误。

传奇:form a = qr,首先加载,然后隐藏。表单B =帐户,接下来是加载的,用户在其中选择数据库的标准。按下按钮,关闭帐户并显示QR,QR的方法在关闭时从帐户中触发,并加载数据库。

这是我到目前为止所拥有的,告诉我我似乎缺少的东西。

QR上暴露的属性:

    public string BUName { get; set; }
    public string DOCUName { get; set; }

在public void qr((

            InitializeComponent();
            this.Hide();
            Account AccountForms = new Account();
            AccountForms.FormToShowOnClose = this;
            AccountForm.ShowDialog();

loadData(从帐户中加载标准为Refresher((准备,这是[表]的标准选择 *(:

    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已经开始初始化,只是隐藏了。

将此代码移至加载QR表格的事件处理程序:

this.Hide();
Account AccountForms = new Account();
AccountForms.FormToShowOnClose = this;
AccountForm.ShowDialog();

相关内容

最新更新