关于frmBaseChild.SetParameter方法说明与使用,打开窗体传入参数例子


frmBaseChild.SetParameter方法定义:
C# Code:
/// <summary>
/// 打开当前窗体传入的预设参数, 界面需要根据此参数做特殊处理
/// </summary>
protected object _CurrentParameter = null;
/// <summary>
/// 给窗体设置参数,SetParameter方法在在Form.Load事件之前运行的, 因此需要在Form.Load事件内处理传入的参数。
/// 参考:MdiTools.OpenChildForm(IMdiForm mdi, Type formType, ToolStripMenuItem sender, object param)方法
/// </summary>
/// <param name="param"></param>
public virtual void SetParameter(object param) { _CurrentParameter = param; }
//来源:C/S框架网(www.csframework.com) QQ:1980854898
/// <summary>
/// 打开当前窗体传入的预设参数, 界面需要根据此参数做特殊处理
/// </summary>
protected object _CurrentParameter = null;
/// <summary>
/// 给窗体设置参数,SetParameter方法在在Form.Load事件之前运行的, 因此需要在Form.Load事件内处理传入的参数。
/// 参考:MdiTools.OpenChildForm(IMdiForm mdi, Type formType, ToolStripMenuItem sender, object param)方法
/// </summary>
/// <param name="param"></param>
public virtual void SetParameter(object param) { _CurrentParameter = param; }
//来源:C/S框架网(www.csframework.com) QQ:1980854898
注意:SetParameter方法在在Form.Load事件之前运行的, 因此需要在Form.Load事件内处理传入的参数!
DEMO:
需求: 采购模块“供应商管理”打开数据字典窗体的“客户管理”,仅显示供应商资料
第一步:采购管理模块菜单的Click事件:
C# Code:
private void menuPurchaseSupplierMgr_Click(object sender, EventArgs e)
{
//打开数据字典窗体的客户/供应商资料管理,仅显示供应商类型的数据
(MdiTools.MainForm as IMdiForm).OpenModuleForm("CSFramework4.DataDictionary.frmCustomer", "menuItemCustomer", "SPL");
}
//来源:C/S框架网(www.csframework.com) QQ:1980854898
private void menuPurchaseSupplierMgr_Click(object sender, EventArgs e)
{
//打开数据字典窗体的客户/供应商资料管理,仅显示供应商类型的数据
(MdiTools.MainForm as IMdiForm).OpenModuleForm("CSFramework4.DataDictionary.frmCustomer", "menuItemCustomer", "SPL");
}
//来源:C/S框架网(www.csframework.com) QQ:1980854898
第二步:数据字典模块主窗体重写OpenForm方法
C# Code:
/// <summary>
/// 跨模块打开功能窗体的主接口
/// </summary>
/// <param name="formFullName">窗体全名</param>
/// <param name="menuName">菜单名</param>
/// <param name="param">传入参数</param>
/// <returns></returns>
public override Form OpenForm(string formFullName, string menuName, object param)
{
Form form = null;
if (formFullName == typeof(frmCustomer).FullName)
form = MdiTools.OpenChildForm(this.MdiParent as IMdiForm, typeof(frmCustomer), menuItemCustomer, param);
return form;
}
//来源:C/S框架网(www.csframework.com) QQ:1980854898
/// <summary>
/// 跨模块打开功能窗体的主接口
/// </summary>
/// <param name="formFullName">窗体全名</param>
/// <param name="menuName">菜单名</param>
/// <param name="param">传入参数</param>
/// <returns></returns>
public override Form OpenForm(string formFullName, string menuName, object param)
{
Form form = null;
if (formFullName == typeof(frmCustomer).FullName)
form = MdiTools.OpenChildForm(this.MdiParent as IMdiForm, typeof(frmCustomer), menuItemCustomer, param);
return form;
}
//来源:C/S框架网(www.csframework.com) QQ:1980854898
第三步:frmCustomer窗体处理参数
C# Code:
protected override void InitializeForm()
{
//处理打开窗体传入的参数
if (_CurrentParameter != null)
{
//在此处理参数
//省略代码, 请参数 frmCustomer.cs
}
}
//来源:C/S框架网(www.csframework.com) QQ:1980854898
protected override void InitializeForm()
{
//处理打开窗体传入的参数
if (_CurrentParameter != null)
{
//在此处理参数
//省略代码, 请参数 frmCustomer.cs
}
}
//来源:C/S框架网(www.csframework.com) QQ:1980854898
效果图:


扫一扫加作者微信


版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
NewDoc C/S框架网