关于frmBaseChild.SetParameter方法说明与使用,打开窗体传入参数例子
作者:C/S框架网  发布日期:2015-01-02 13:17:43
  关于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




注意: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



第二步:数据字典模块主窗体重写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



第三步:frmCustomer窗体处理参数


C# Code:

protected override void InitializeForm()
{
   //处理打开窗体传入的参数
   if (_CurrentParameter != null)
   {
      //在此处理参数
      //省略代码, 请参数 frmCustomer.cs
   }
}

//来源:C/S框架网(www.csframework.com) QQ:1980854898



效果图:



贴图图片
上一篇 下一篇