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;//当前选中目录节点idif (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;}}