1.无参数弹出框

首先看图:如图所示,点击设备入库按钮,弹出设备入库窗口

下面来看代码

当前窗口命名为:EquipImportFrm

新窗口命名为:EquipImportAddFrm

点击事件中代码如下

private void btnImport_Click(object sender, EventArgs e)
        {
            EquipImportAddFrm frm = new EquipImportAddFrm();
            if ( frm.ShowDialog()==DialogResult.OK)//对话框返回值为ok时运行
            {
                btnFind_Click(sender, e); //这个是当前页面的重新加载的查询事件
            }
        }

 下面是新窗口中的需要注意的代码

///新页面的提交方法 
private void btnCommit_Click(object sender, EventArgs e) { try { if (!CheckImport())//页面检查验证方法 { return; } int i = 0; i = SaveEquip();//保存页面信息到对应的表中的方法 if (i == 1) { MessageBox.Show("保存成功!"); this.DialogResult = DialogResult.OK;//对话框的返回值 } else if (i == 2) { MessageBox.Show("没有修改,无需保存!"); return; } InitDisp(); } catch (Exception ex) { Error.ErrProc(ex); } }

 ok这个就是winform弹出对话框的基本代码。还有一种是需要传值的弹出。

2.带参数弹出框

首先我们来看图

在树形结构目录中,点击要添加的目录节点,点击“添加设备分类”按钮,添加新节点,点击“添加设备品名”按钮添加,为当前节点添加设备品名。

下面是代码

当前页面是:EquipClassFrm

弹出设备分类编辑页面为:EquipClassUpdateFrm

      /// <summary>
        /// 添加设备分类
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btNewClass_Click(object sender, EventArgs e)
        {
            EquipClassUpdateFrm eqClassFrm = new EquipClassUpdateFrm();
            eqClassFrm.CalssCode = classCode;//当前选中目录节点id
            if (eqClassFrm.ShowDialog() == DialogResult.OK)
            {
                EquipClassFrm_Load(sender, e);
            }
        }

 


 

 在新页面中EquipClassUpdateFrm,需要添加对应的属性

 private string _calssCode = string.Empty;
        /// <summary>
        /// 物资类别
        /// </summary>
        public string CalssCode
        {
            get
            {
                return _calssCode;
            }
            set
            {
                _calssCode = value;
            }
        }

由于要初始化新窗体,需要在首次加载新窗体时,初始化页面

private void EquipClassUpdateFrm_Load(object sender, EventArgs e)
        {
            dbInfo = new DbInfo();
            initFrm();//初始化界面
            

        }
/// <summary>
        /// 初始化界面
        /// </summary>
        private void initFrm()
        {
            if (!string.IsNullOrEmpty(_calssCode))
            {
                txtEqCode.Text = _calssCode;
                sql = string.Format("SELECT CLASS_NAME FROM EQ_CLASS_DICT   WHERE COMMUNITY_CODE={0} AND CLASS_CODE={1}", SQL.SqlConvert(GVars.CommunityCode), SQL.SqlConvert(_calssCode));
                txtEqName.Text = dbInfo.GetValueBySql(sql);
            }
        }

 点击保存按钮时

  /// <summary>
        /// 保存
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnSave_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(txtEqCode.Text.Trim()) || string.IsNullOrEmpty(txtEqName.Text.Trim()))
            {
                MessageBox.Show("设备编码和名称请填写完成!", "提示");
                return;
            }
            if (IsExistEqCode(txtEqCode.Text.Trim()))
            {
                dsClassDict = dbInfo.GetTableData("EQ_CLASS_DICT", "1=2");
                DataRow drNew = dsClassDict.Tables[0].NewRow();
                drNew["COMMUNITY_CODE"] = GVars.CommunityCode;
                drNew["CLASS_CODE"] = txtEqCode.Text.Trim();
                drNew["CLASS_NAME"] = txtEqName.Text.Trim();
                if (!string.IsNullOrEmpty(_calssCode))
                {
                    drNew["PARENT_ID"] = _calssCode;
                }
                else
                {
                    drNew["PARENT_ID"] = "-1";
                }
                subString = txtInputCode.Text.Trim().ToUpper();
                if (subString.Length > 8)
                {
                    subString = subString.Substring(0, 8);
                }
                drNew["INPUT_CODE"] = subString;
                dsClassDict.Tables[0].Rows.Add(drNew);
                dbInfo.SaveTableData(dsClassDict.GetChanges());
                MessageBox.Show("保存成功!");
                this.DialogResult = DialogResult.OK;
            }
            else
            {
                MessageBox.Show("设备编码已存在!", "提示");
                return;
            }
        }