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; } }