Winfrom传值

Winfrom窗体直接传值
   1父窗体传值给子窗体
(1)	定义类,需要传值的字段
在父窗体中赋值,在show子窗体时    
 //MessageBox.Show("登Ì?陆?成¨¦功|");
            FrmYieldTransitEdit fm = new FrmYieldTransitEdit();
            User.LoginName = useName;
            User.UserID = Convert.ToInt32(User_ID);
            this.Hide();
            fm.Show();
子窗体中取值通过对象.属性



2 字窗体传值给父窗体
(1)通过tag对象,在子窗体去掉值存放在tag对象里,通过找到父窗体控件给控件赋值
FromSelectAllYieldRole se = new FromSelectAllYieldRole();//子Á¨®窗ä¡ã体¬?
            se.Owner = this;//子Á¨®窗ä¡ã体¬?的Ì?拥®¦Ì有®D者?父?窗ä¡ã体¬?
            se.ShowDialog();

//1把ã?父?窗ä¡ã体¬?有®D些?数ºy据Y清?空?
                
                FrmYieldTransitEdit fy = (FrmYieldTransitEdit)this.Owner;//
                SetValue(fy);
                SetCmboxItem(fy);

        //给?父?窗ä¡ã体¬?设¦¨¨置?值¦Ì
        public void SetValue(FrmYieldTransitEdit fy) 
        {
               this.Tag = GetDate();
                //注Á¡é意°a 如¨?果?textBox1是º?放¤?在¨²panel1中D的Ì? 则¨°先¨¨找¨°panel1 再¨´找¨°textBox1
                if (this.Tag != null)
                {
                    
                    ((TextBox)fy.Controls["panshow1"].Controls["txtSellUnitName"]).Text = ((Hashtable)this.Tag)["ShortName"].ToString();        }
}

        //给?父?窗ä¡ã体¬?的Ì?任¨?务?mcb重?新?添¬¨ª加¨®项?,
        public void SetCmboxItem(FrmYieldTransitEdit fy) 
        {
            string NO = string.Empty;//任¨?务?编À¨¤号?
            string PouringPlace = string.Empty;//浇?注Á¡é部?位?
            string MarkName = string.Empty;//产¨²品¡¤标À¨º号?
            string ConcreateNum = string.Empty;//混¨¬凝y土ª¨¢数ºy量¢?
            string MortarNum = string.Empty;//砂¦¡ã浆?数ºy量¢?
            string sqlDisplayMember = string.Empty;
            ComboBox cm=((ComboBox)fy.Controls["panshow1"].Controls["cmbYieldRoleNO"]);
            DataTable dt = (DataTable )cm.DataSource;//找¨°到Ì?数ºy据Y源¡ä新?加¨®数ºy据Y再¨´中D新?绑㨮定¡§
            //dt.Columns.Add("ID");
            //dt.Columns.Add("Name");
            if (Tag != null)
            {
                NO = ((Hashtable)this.Tag)["NO"].ToString();//任¨?务?编À¨¤号?
                PouringPlace = ((Hashtable)this.Tag)["PouringPlace"].ToString();//浇?注Á¡é部?位?
                MarkName = ((Hashtable)this.Tag)["YieldProductMark"].ToString();//产¨²品¡¤标À¨º示º?
                ConcreateNum = ((Hashtable)this.Tag)["ConcreateNum"].ToString();//混¨¬凝y土ª¨¢数ºy量¢?
                MortarNum = ((Hashtable)this.Tag)["MortarNum"].ToString();//砼ª?标À¨º号?砂¦¡ã浆?数ºy量¢?
                sqlDisplayMember = NO + " " + "|" + " " + PouringPlace + " " + "|" + " " + MarkName + " " + "|" + " " + ConcreateNum + " " + "|" + " " + MortarNum;
                if (dt != null && dt.Rows.Count > 0)
                {
                        string id = ((Hashtable)this.Tag)["ID"].ToString();//获?取¨?我¨°选?中D的Ì?数ºy据Yid
                        DataRow[] dr = dt.Select("ID='"+id+"' ");//在¨²页°3面?的Ì?dt找¨°到Ì?我¨°选?中D的Ì?那?个?对?应®|id,ê?就¨ª表À¨ª示º?数ºy据Y已°?经-存ä?在¨²
                        if (dr != null && dr.Length > 0)
                        {
             
                            DialogResult result = MessageBox.Show("您¨²所¨´选?中D的Ì?数ºy据Y已°?经-存ä?在¨²,ê?请?重?新?选?择?数ºy据Y!ê?", "ERROR", MessageBoxButtons.OKCancel, MessageBoxIcon.Information);
                            if (result == DialogResult.OK)
                            {
                                this.Show();
                            } 
                            cm.DataSource = dt;
                        }
                        else {
                            dt.Rows.Add(((Hashtable)this.Tag)["ID"].ToString(), sqlDisplayMember); 
                            cm.DataSource = dt;
                            cm.SelectedValue = ((Hashtable)this.Tag)["ID"].ToString();
                            this.Close();
                        }
                }
            }
     
        }


        //获?取¨?子Á¨®dgv行D数ºy据Y
        public Hashtable GetDate() 
        {
            Hashtable ht = new Hashtable();
            if (dgvShowAll.CurrentRow.Cells["ID"].Value!=null)
            {
                ht.Add("ID", this.dgvShowAll.CurrentRow.Cells["ID"].Value.ToString());
            }
            if (dgvShowAll.CurrentRow.Cells["NO"].Value != null)
            {
                ht.Add("NO", this.dgvShowAll.CurrentRow.Cells["NO"].Value.ToString());
            }

            }
            return ht;
        }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值