winform點擊彈出新頁面,彈出框


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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM