【问题标题】:Getting Form (Show Dialogue) Value to MDI Child Form in C#在 C# 中获取表单(显示对话)值到 MDI 子表单
【发布时间】:2014-05-10 11:58:15
【问题描述】:

我尝试根据How do I pass a value from a child back to the parent form? 执行此代码

但是,我只是想通过一个函数将日期值传递给 MDI 主窗体,该函数将加载 datagridview 中的所有数据(在主窗体中) 子窗体是 ShowDialogue

主 MDI 表单父级,在子表单对话框关闭后,其值为“日期”,并且在将日期值子级获取到显示数据的函数时,datagridview 上的数据将被刷新。

抱歉,我最后在这里问了。

【问题讨论】:

  • @GrantWinney 是的,实际上我试图从如何将值从孩子传递回父表单问题中获取一些代码。我所做的是在我的 MDI Child New 上有一个名为 NewPurchaseOrder 的按钮。在 NewPurchaseOrderButton 下,我使用以下代码: using (mPOrder newPO = new mPOrder()) { newPO.ShowDialog();接下来是我使用 ShowDialogue 调用的子表单。我实现了取消按钮表单,并在取消按钮功能下添加了以下代码: mdiPO parent = (mdiPO)this.Owner; parent.SetDateToLoadData(dateTimePick.Text);

标签: c# desktop-application


【解决方案1】:

您不必让子表单更新父表单上的字段。

相反,在子窗体上创建一个属性,该属性将返回来自DateTimePicker 的值。

public DateTime PurchaseOrderDate
{
    get { return dateTimePicker1.Value; }  // your PO date picker control
}

然后在主窗体上,取回子窗体关闭时的值:

using (mPOrder newPO = new mPOrder())
{
    newPO.ShowDialog();

    var poDate = newPO.PurchaseOrderDate;

    // do something with the date - update grid or whatever
}

【讨论】:

  • 感谢格兰特。我现在才知道。很抱歉浪费您的时间阅读此主题。
【解决方案2】:

这里有一些技巧可以用来获取父表单的日期值

您需要在子窗体中创建方法是公开的。

public DateTime GetDateFromChild(){
  this.ShowDialog();
return Convert.ToDateTime(this.txtdatevalue.text);

}

在您的父表单中

childform form = new childform();
Datetime getdate = form.GetDateFromChild();

这未经测试,但我已经使用这种类型的方法将值传递给另一个

另一个选项是

创建一个静态类并将其属性值分配给您的日期,然后从父表单中取回日期值给它..

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多