old mode 100755
new mode 100644
| | |
| | | using Shared.Phone.UserCenter;
|
| | | using System;
|
| | | using System.Collections.Generic;
|
| | | using System.Text;
|
| | | using System.Threading.Tasks;
|
| | |
|
| | | namespace Shared.Phone
|
| | | {
|
| | | /// <summary>
|
| | | /// 界面最基层的底层共通
|
| | | /// </summary>
|
| | | public class CommonFormBase : FrameLayout
|
| | | {
|
| | | using Shared.Phone.UserCenter; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace Shared.Phone |
| | | { |
| | | /// <summary> |
| | | /// 界面最基层的底层共通 |
| | | /// </summary> |
| | | public class CommonFormBase : FrameLayout |
| | | { |
| | | #region ■ 变量声明___________________________ |
| | | |
| | | /// <summary>
|
| | | /// 画面的ID(自动编号,唯一主键,和各页面并无任何逻辑关系,但是它的用处大着呢)
|
| | | /// <summary> |
| | | /// 画面的ID(自动编号,唯一主键,和各页面并无任何逻辑关系,但是它的用处大着呢) |
| | | /// </summary> |
| | | public string FormID = string.Empty; |
| | | |
| | |
| | | { |
| | | //将当前的画面保存到内存当中 |
| | | UserCenterLogic.AddActionForm(this); |
| | | //Log出力
|
| | | HdlLogLogic.Current.WriteLog(1, this.FormID + " 界面打开");
|
| | | }
|
| | |
|
| | | //Log出力 |
| | | HdlLogLogic.Current.WriteLog(1, this.FormID + " 界面打开"); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 执行ShowForm()方法 |
| | | /// </summary> |
| | | /// <param name="parameter">启动参数</param> |
| | | public virtual void LoadShowFormMethod(params object[] parameter) |
| | | {
|
| | | { |
| | | this.LoadFormMethodByName(this, "ShowForm", parameter); |
| | | }
|
| | |
|
| | | } |
| | | |
| | | #endregion |
| | |
|
| | | |
| | | #region ■ 添加界面___________________________ |
| | |
|
| | | |
| | | /// <summary> |
| | | /// 添加画面,启动参数由指定画面的ShowForm函数所指定 |
| | | /// </summary> |
| | | /// <param name="parameter">启动参数:参数由指定画面的ShowForm函数所指定</param> |
| | | public virtual void AddForm(params object[] parameter) |
| | | {
|
| | | //关闭输入法界面
|
| | | this.CloseInputPanel();
|
| | |
|
| | | return;
|
| | | }
|
| | |
|
| | | { |
| | | //关闭输入法界面 |
| | | this.CloseInputPanel(); |
| | | |
| | | return; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 添加指定画面,并移除当前画面,启动参数由指定画面的ShowForm函数所指定 |
| | | /// </summary> |
| | |
| | | this.CloseForm(); |
| | | //添加画面 |
| | | form.AddForm(parameter); |
| | | }
|
| | |
|
| | | #endregion
|
| | |
|
| | | #region ■ 关闭界面___________________________
|
| | |
|
| | | /// <summary>
|
| | | /// 画面关闭之前(底层变更,不能重载CloseForm方法了)
|
| | | /// </summary>
|
| | | public virtual void CloseFormBefore()
|
| | | {
|
| | | //关闭输入法界面
|
| | | this.CloseInputPanel();
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 画面关闭之后(新增)
|
| | | /// </summary>
|
| | | public virtual void CloseFormAfter()
|
| | | {
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 画面关闭
|
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region ■ 关闭界面___________________________ |
| | | |
| | | /// <summary> |
| | | /// 画面关闭之前(底层变更,不能重载CloseForm方法了) |
| | | /// </summary> |
| | | public virtual void CloseFormBefore() |
| | | { |
| | | //关闭输入法界面 |
| | | this.CloseInputPanel(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 画面关闭之后(新增) |
| | | /// </summary> |
| | | public virtual void CloseFormAfter() |
| | | { |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 画面关闭 |
| | | /// </summary> |
| | | public void CloseForm() |
| | | {
|
| | | //Log出力
|
| | | HdlLogLogic.Current.WriteLog(1, this.FormID + " 界面关闭");
|
| | | try
|
| | | {
|
| | | //关闭进度条
|
| | | this.CloseProgressBar();
|
| | |
|
| | | //画面关闭之前
|
| | | this.CloseFormBefore();
|
| | |
|
| | | //调用的是Base的移除控件函数
|
| | | //而不是调用this的移除控件函
|
| | | base.RemoveFromParent();
|
| | |
|
| | | //从列表中移除(防止画面二重添加)
|
| | | UserCenterLogic.RemoveActionForm(this);
|
| | |
|
| | | //画面关闭之后
|
| | | this.CloseFormAfter();
|
| | | }
|
| | | catch (Exception ex)
|
| | | {
|
| | | //出现未知错误
|
| | | this.ShowMassage(ShowMsgType.Error, Language.StringByID(R.MyInternationalizationString.uUnKnownError));
|
| | | //Log出力
|
| | | HdlLogLogic.Current.WriteLog(ex);
|
| | | }
|
| | | { |
| | | //Log出力 |
| | | HdlLogLogic.Current.WriteLog(1, this.FormID + " 界面关闭"); |
| | | try |
| | | { |
| | | //关闭进度条 |
| | | this.CloseProgressBar(); |
| | | |
| | | //画面关闭之前 |
| | | this.CloseFormBefore(); |
| | | |
| | | //调用的是Base的移除控件函数 |
| | | //而不是调用this的移除控件函 |
| | | base.RemoveFromParent(); |
| | | |
| | | //从列表中移除(防止画面二重添加) |
| | | UserCenterLogic.RemoveActionForm(this); |
| | | |
| | | //画面关闭之后 |
| | | this.CloseFormAfter(); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | //出现未知错误 |
| | | this.ShowMassage(ShowMsgType.Error, Language.StringByID(R.MyInternationalizationString.uUnKnownError)); |
| | | //Log出力 |
| | | HdlLogLogic.Current.WriteLog(ex); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 画面关闭(在画面里面,请不要调用此方法,请使用CloseForm()方法) |
| | | /// </summary> |
| | | public override void RemoveFromParent() |
| | | {
|
| | | //画面右滑时,关闭画面,调用自定义的CloseForm()方法
|
| | | { |
| | | //画面右滑时,关闭画面,调用自定义的CloseForm()方法 |
| | | this.CloseForm(); |
| | | }
|
| | |
|
| | | #endregion
|
| | |
|
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region ■ 网关在线状态推送___________________ |
| | | |
| | | /// <summary>
|
| | | /// 网关在线状态变更推送(只有在变更的时候才会推送)
|
| | | /// </summary>
|
| | | /// <summary> |
| | | /// 网关在线状态变更推送(只有在变更的时候才会推送) |
| | | /// </summary> |
| | | /// <param name="gateWay">网关对象</param> |
| | | /// <param name="online">在线状态变更后的状态</param> |
| | | /// <param name="hadGwOnline">2020.05.25追加:此住宅是否拥有网关在线</param>
|
| | | public virtual void GatewayOnlinePush(ZigBee.Device.ZbGateway gateWay, bool online, bool hadGwOnline)
|
| | | {
|
| | | }
|
| | |
|
| | | /// <param name="hadGwOnline">2020.05.25追加:此住宅是否拥有网关在线</param> |
| | | public virtual void GatewayOnlinePush(ZigBee.Device.ZbGateway gateWay, bool online, bool hadGwOnline) |
| | | { |
| | | } |
| | | |
| | | #endregion |
| | |
|
| | | |
| | | #region ■ 圆形进度条_________________________ |
| | | |
| | | /// <summary>
|
| | | /// 进度条启动
|
| | | /// </summary>
|
| | | /// <summary> |
| | | /// 进度条启动 |
| | | /// </summary> |
| | | /// <param name="text">初始文本</param> |
| | | public void ShowProgressBar(string text = "") |
| | | { |
| | | if (this.FormID != UserCenterResourse.NowActionFormID)
|
| | | {
|
| | | return;
|
| | | if (this.FormID != UserCenterResourse.NowActionFormID) |
| | | { |
| | | return; |
| | | } |
| | | ProgressBar.Show(text); |
| | | } |
| | |
| | | /// </summary> |
| | | /// <param name="value">值</param> |
| | | public void SetProgressValue(decimal value) |
| | | {
|
| | | { |
| | | ProgressBar.SetValue(value); |
| | | } |
| | | |
| | |
| | | /// </summary> |
| | | /// <param name="value">值</param> |
| | | public void SetProgressValue(string value) |
| | | {
|
| | | { |
| | | ProgressBar.SetValue(value); |
| | | } |
| | | |
| | |
| | | /// </summary> |
| | | /// <param name="value">值</param> |
| | | public void SetProgressMax(decimal value) |
| | | {
|
| | | if (value == 0)
|
| | | {
|
| | | value = 100;
|
| | | }
|
| | | { |
| | | if (value == 0) |
| | | { |
| | | value = 100; |
| | | } |
| | | ProgressBar.SetMaxValue(value); |
| | | } |
| | | |
| | | /// <summary>
|
| | | /// 关闭进度条
|
| | | /// </summary>
|
| | | /// <summary> |
| | | /// 关闭进度条 |
| | | /// </summary> |
| | | /// <param name="mode">是否显示重新加载的界面</param> |
| | | public void CloseProgressBar(ShowReLoadMode mode = ShowReLoadMode.NO) |
| | | { |
| | | ProgressBar.Close(); |
| | | if (mode == ShowReLoadMode.YES)
|
| | | {
|
| | | //显示重新加载的界面(主要是用在界面加载错误时,再次加载)
|
| | | this.ShowReLoadView();
|
| | | if (mode == ShowReLoadMode.YES) |
| | | { |
| | | //显示重新加载的界面(主要是用在界面加载错误时,再次加载) |
| | | this.ShowReLoadView(); |
| | | } |
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 显示重新加载的界面(主要是用在界面加载错误时,再次加载)
|
| | | /// </summary>
|
| | | public virtual void ShowReLoadView()
|
| | | {
|
| | | }
|
| | |
|
| | | #endregion
|
| | |
|
| | | #region ■ 一般的方法_________________________ |
| | |
|
| | | /// <summary>
|
| | | /// 显示信息框
|
| | | /// </summary>
|
| | | /// <param name="msgType">信息类型</param>
|
| | | /// <param name="msg">信息</param>
|
| | | /// <param name="action">单击确认后执行的回调函数</param>
|
| | | /// <param name="buttonText">按钮的文本</param> |
| | | public void ShowMassage(ShowMsgType msgType, string msg, Action action = null, string buttonText = null)
|
| | | {
|
| | | //空对象时,不显示
|
| | | if (string.IsNullOrEmpty(msg)) |
| | | { |
| | | return; |
| | | }
|
| | | Application.RunOnMainThread(() => |
| | | { |
| | | var alert = new ShowMsgControl(msgType, msg, buttonText); |
| | | if (action != null)
|
| | | {
|
| | | alert.ConfirmClickEvent += () =>
|
| | | {
|
| | | try
|
| | | {
|
| | | //回调函数
|
| | | action?.Invoke();
|
| | | }
|
| | | catch (Exception ex)
|
| | | {
|
| | | //出现未知错误,数据丢失
|
| | | this.ShowMassage(ShowMsgType.Error, Language.StringByID(R.MyInternationalizationString.uUnKnownError));
|
| | |
|
| | | //Log出力
|
| | | HdlLogLogic.Current.WriteLog(ex);
|
| | | }
|
| | | action = null;
|
| | | };
|
| | | }
|
| | | alert.Show(); |
| | | });
|
| | | } |
| | | |
| | | /// <summary>
|
| | | /// 判断当前正在活动的界面是否是当前这个界面
|
| | | /// </summary>
|
| | | /// <returns></returns> |
| | | public bool NowFormIsAction()
|
| | | {
|
| | | return UserCenterResourse.NowActionFormID == this.FormID;
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 关闭输入法界面(未实现)
|
| | | /// </summary>
|
| | | public void CloseInputPanel()
|
| | | {
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 计算图片的真实高宽度
|
| | | /// </summary>
|
| | | /// <param name="i_size"></param>
|
| | | /// <returns></returns>
|
| | | public int GetPictrueRealSize(int i_size)
|
| | | {
|
| | | return HdlControlLogic.Current.GetPictrueRealSize(i_size);
|
| | | }
|
| | |
|
| | | /// <summary> |
| | | /// 显示重新加载的界面(主要是用在界面加载错误时,再次加载) |
| | | /// </summary> |
| | | public virtual void ShowReLoadView() |
| | | { |
| | | } |
| | | |
| | | #endregion |
| | |
|
| | | #region ■ 检测错误___________________________
|
| | |
|
| | | /// <summary>
|
| | | /// 检测界面的错误
|
| | | /// </summary>
|
| | | /// <returns></returns>
|
| | | public bool CheckForm()
|
| | | {
|
| | | //检测控件
|
| | | return this.CheckControl(this);
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 检测控件
|
| | | /// </summary>
|
| | | /// <param name="view"></param>
|
| | | /// <returns></returns>
|
| | | private bool CheckControl(View view)
|
| | | {
|
| | | //第一个进来肯定是 ViewGroup
|
| | | if (view is ViewGroup)
|
| | | {
|
| | | var viewGroup = (ViewGroup)view;
|
| | | for (int i = 0; i < viewGroup.ChildrenCount; i++)
|
| | | {
|
| | | var myView = viewGroup.GetChildren(i);
|
| | | if (myView is ViewGroup)
|
| | | {
|
| | | //递归检测
|
| | | bool result = this.CheckControl(myView);
|
| | | if (result == false)
|
| | | {
|
| | | return false;
|
| | | }
|
| | | continue;
|
| | | }
|
| | | if (myView is TextInputControl)
|
| | | {
|
| | | //检测输入框的错误
|
| | | var error = ((TextInputControl)myView).CheckError();
|
| | | if (error != null)
|
| | | {
|
| | | this.ShowMassage(ShowMsgType.Tip, error);
|
| | | ((TextInputControl)myView).OnError = true;
|
| | | return false;
|
| | | }
|
| | | ((TextInputControl)myView).OnError = false;
|
| | | }
|
| | | }
|
| | | }
|
| | | return true;
|
| | | }
|
| | |
|
| | | #endregion
|
| | |
|
| | | |
| | | #region ■ 一般的方法_________________________ |
| | | |
| | | /// <summary> |
| | | /// 显示信息框 |
| | | /// </summary> |
| | | /// <param name="msgType">信息类型</param> |
| | | /// <param name="msg">信息</param> |
| | | /// <param name="action">单击确认后执行的回调函数</param> |
| | | /// <param name="buttonText">按钮的文本</param> |
| | | /// <param name="i_waitTime">等待时间,单位为秒,设置确认按钮在多长时间后才能够点击</param> |
| | | public void ShowMassage(ShowMsgType msgType, string msg, Action action = null, string buttonText = null, int i_waitTime = -1) |
| | | { |
| | | HdlMessageLogic.Current.ShowMassage(msgType, msg, action, buttonText, i_waitTime); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 判断当前正在活动的界面是否是当前这个界面 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public bool NowFormIsAction() |
| | | { |
| | | return UserCenterResourse.NowActionFormID == this.FormID; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 关闭输入法界面(未实现) |
| | | /// </summary> |
| | | public void CloseInputPanel() |
| | | { |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 计算图片的真实高宽度 |
| | | /// </summary> |
| | | /// <param name="i_size"></param> |
| | | /// <returns></returns> |
| | | public int GetPictrueRealSize(int i_size) |
| | | { |
| | | return HdlControlLogic.Current.GetPictrueRealSize(i_size); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 计算真实宽度(可能以后会变动,所以声明出来有用处) |
| | | /// </summary> |
| | | /// <param name="i_size"></param> |
| | | /// <returns></returns> |
| | | public int GetRealWidth(int i_size) |
| | | { |
| | | return HdlControlLogic.Current.GetRealWidth(i_size); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 计算真实高度度(可能以后会变动,所以声明出来有用处) |
| | | /// </summary> |
| | | /// <param name="i_size"></param> |
| | | /// <returns></returns> |
| | | public int GetRealHeight(int i_size) |
| | | { |
| | | return HdlControlLogic.Current.GetRealHeight(i_size); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 计算真实大小(这个东西有特殊用处,考虑到加长型屏幕的控件,调用此方法) |
| | | /// </summary> |
| | | /// <param name="i_size"></param> |
| | | /// <returns></returns> |
| | | public int GetRealSizeEx(int i_size) |
| | | { |
| | | return HdlControlLogic.Current.GetRealSizeEx(i_size); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 判断指定的界面是否打开 |
| | | /// </summary> |
| | | /// <param name="formId"></param> |
| | | /// <returns></returns> |
| | | public bool IsFormOpen(string formId) |
| | | { |
| | | return UserCenterResourse.DicActionForm.ContainsKey(formId); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region ■ 检测错误___________________________ |
| | | |
| | | /// <summary> |
| | | /// 检测界面的错误 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public virtual bool CheckForm() |
| | | { |
| | | //检测控件 |
| | | return this.CheckControl(this); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 检测控件 |
| | | /// </summary> |
| | | /// <param name="view"></param> |
| | | /// <returns></returns> |
| | | private bool CheckControl(View view) |
| | | { |
| | | //第一个进来肯定是 ViewGroup |
| | | if (view is ViewGroup) |
| | | { |
| | | var viewGroup = (ViewGroup)view; |
| | | for (int i = 0; i < viewGroup.ChildrenCount; i++) |
| | | { |
| | | var myView = viewGroup.GetChildren(i); |
| | | if (myView is ViewGroup) |
| | | { |
| | | //递归检测 |
| | | bool result = this.CheckControl(myView); |
| | | if (result == false) |
| | | { |
| | | return false; |
| | | } |
| | | continue; |
| | | } |
| | | if (myView is TextInputControl) |
| | | { |
| | | //检测输入框的错误 |
| | | var error = ((TextInputControl)myView).CheckError(); |
| | | if (error != null) |
| | | { |
| | | this.ShowMassage(ShowMsgType.Tip, error); |
| | | ((TextInputControl)myView).OnError = true; |
| | | return false; |
| | | } |
| | | ((TextInputControl)myView).OnError = false; |
| | | } |
| | | } |
| | | } |
| | | return true; |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region ■ 反射方法___________________________ |
| | |
|
| | | |
| | | /// <summary> |
| | | /// 关闭指定的画面 |
| | | /// </summary> |
| | |
| | | /// <param name="method">指定要加载的方法名</param> |
| | | /// <param name="parameter">启动参数</param> |
| | | public object LoadFormMethodByName(string formName, string method, params object[] parameter) |
| | | {
|
| | | if (UserCenterResourse.DicActionForm.ContainsKey(formName) == false)
|
| | | {
|
| | | return null;
|
| | | }
|
| | | var form = UserCenterResourse.DicActionForm[formName];
|
| | | { |
| | | if (UserCenterResourse.DicActionForm.ContainsKey(formName) == false) |
| | | { |
| | | return null; |
| | | } |
| | | var form = UserCenterResourse.DicActionForm[formName]; |
| | | return this.LoadFormMethodByName(form, method, parameter); |
| | | }
|
| | |
|
| | | } |
| | | |
| | | /// <summary> |
| | | /// 执行指定画面的方法(注意:这个是专门调用异步,并且等待异步完成的高科技函数,不调用异步的情况,别使用此函数) |
| | | /// </summary> |
| | |
| | | /// <param name="method">指定要加载的方法名</param> |
| | | /// <param name="parameter">启动参数</param> |
| | | public async Task<object> LoadFormMethodByNameAsync(string formName, string method, params object[] parameter) |
| | | {
|
| | | if (UserCenterResourse.DicActionForm.ContainsKey(formName) == false)
|
| | | {
|
| | | return null;
|
| | | }
|
| | | var form = UserCenterResourse.DicActionForm[formName];
|
| | | { |
| | | if (UserCenterResourse.DicActionForm.ContainsKey(formName) == false) |
| | | { |
| | | return null; |
| | | } |
| | | var form = UserCenterResourse.DicActionForm[formName]; |
| | | var task = this.LoadFormMethodByName(form, method, parameter) as Task; |
| | | await task; |
| | | |
| | | var result = task.GetType().GetProperty("Result").GetValue(task, null); |
| | | return result; |
| | | }
|
| | |
|
| | | } |
| | | |
| | | /// <summary> |
| | | /// 执行指定画面的方法 |
| | | /// </summary> |
| | |
| | | /// <param name="method">指定要加载的方法名</param> |
| | | /// <param name="parameter">启动参数</param> |
| | | public object LoadFormMethodByName(CommonFormBase form, string method, params object[] parameter) |
| | | {
|
| | | try
|
| | | {
|
| | | if (form == null)
|
| | | {
|
| | | return null;
|
| | | }
|
| | | var myMethod = form.GetType().GetMethod(method);
|
| | | return myMethod.Invoke(form, parameter);
|
| | | { |
| | | try |
| | | { |
| | | if (form == null) |
| | | { |
| | | return null; |
| | | } |
| | | var myMethod = form.GetType().GetMethod(method); |
| | | return myMethod.Invoke(form, parameter); |
| | | } |
| | | catch (Exception ex) |
| | | {
|
| | | //出现未知错误,数据丢失
|
| | | this.ShowMassage(ShowMsgType.Error, Language.StringByID(R.MyInternationalizationString.uUnKnownError));
|
| | | //Log出力
|
| | | HdlLogLogic.Current.WriteLog(ex);
|
| | | return null;
|
| | | { |
| | | //出现未知错误,数据丢失 |
| | | this.ShowMassage(ShowMsgType.Error, Language.StringByID(R.MyInternationalizationString.uUnKnownError)); |
| | | //Log出力 |
| | | HdlLogLogic.Current.WriteLog(ex); |
| | | return null; |
| | | } |
| | | } |
| | | |
| | | /// <summary>
|
| | | /// 使用反射方法,打开指定的画面(只支持继承于UserCenterCommonForm的画面)
|
| | | /// </summary>
|
| | | /// <param name="fullName">画面的命名空间+画面的英文名</param>
|
| | | /// <summary> |
| | | /// 使用反射方法,打开指定的画面(只支持继承于UserCenterCommonForm的画面) |
| | | /// </summary> |
| | | /// <param name="fullName">画面的命名空间+画面的英文名</param> |
| | | /// <param name="parameter">启动参数</param> |
| | | public void LoadFormByFullName(string fullName, params object[] parameter)
|
| | | {
|
| | | System.Reflection.Assembly assembly = System.Reflection.Assembly.GetExecutingAssembly();
|
| | | var form = (CommonFormBase)assembly.CreateInstance(fullName);
|
| | | form.AddForm(parameter);
|
| | | }
|
| | |
|
| | | #endregion
|
| | |
|
| | | }
|
| | | }
|
| | | public void LoadFormByFullName(string fullName, params object[] parameter) |
| | | { |
| | | System.Reflection.Assembly assembly = System.Reflection.Assembly.GetExecutingAssembly(); |
| | | var form = (CommonFormBase)assembly.CreateInstance(fullName); |
| | | form.AddForm(parameter); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | } |
| | | } |