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;
}
Winfrom传值
最新推荐文章于 2022-04-18 13:05:12 发布