C# 有两个画面:form1 和 form2 。 form1中有一个TextBox1,form2中也有一个TextBox2。
而且TextBox1后面跟随一个Button按钮,而且TextBox2后面也跟随一个Button按钮。当我分别单击这两个Button1或Button2时,就会出现一个代理...
而且TextBox1后面跟随一个Button 按钮, 而且TextBox2后面也跟随一个Button按钮。当我分别单击这两个Button1 或 Button2 时,就会出现一个代理商Form3画面。Form3里有DataGridView1,当我双击DataGridView中的一行时,此时就会把这一行里列名字为代理商的内容 和 id 分别传递给Form1 和 Form2 里的TextBox1 和 textBox2 ,
也就是这个意思:我在详细点解释下:当我单击Form1里的Button1按钮, 就会弹出Form3,双击DataGridView一行时,就会把列名字为代理商的内容和ID 同时传递给Form1里面的TextBox1。
当我单击Form2里的Button2按钮, 就会弹出Form3,双击DataGridView一行时,就会把列名字为代理商的内容和ID 同时传递给Form2里面的TextBox2。
请把代吗给我写出来,要是写得好写的对,我就再给你加分!
对了,我这里有夫之代码,供你参考!
//双击DataGridView中的某一行
private void dataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
{
DataGridViewRow dr = this.dataGridView1.SelectedRows[0];
frmSellGoods selld = (frmSellGoods)this.Owner;
selld.txtDlsName.Text = dr.Cells["DlsName"].Value.ToString();
selld.DlsID = dr.Cells["DlsID"].Value.ToString();
this.Close();
} 展开
也就是这个意思:我在详细点解释下:当我单击Form1里的Button1按钮, 就会弹出Form3,双击DataGridView一行时,就会把列名字为代理商的内容和ID 同时传递给Form1里面的TextBox1。
当我单击Form2里的Button2按钮, 就会弹出Form3,双击DataGridView一行时,就会把列名字为代理商的内容和ID 同时传递给Form2里面的TextBox2。
请把代吗给我写出来,要是写得好写的对,我就再给你加分!
对了,我这里有夫之代码,供你参考!
//双击DataGridView中的某一行
private void dataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
{
DataGridViewRow dr = this.dataGridView1.SelectedRows[0];
frmSellGoods selld = (frmSellGoods)this.Owner;
selld.txtDlsName.Text = dr.Cells["DlsName"].Value.ToString();
selld.DlsID = dr.Cells["DlsID"].Value.ToString();
this.Close();
} 展开
展开全部
完整的代码我写不出来,我是属于用软件才能写的。。没软件记不住那么多。
不过应该很简单。举例说一下吧:
Form1:
在这个窗体下建一个公共的变量 public int id;
这个变量用来保存你的ID;
当你双击按钮的时候Form3会Show出来对吧。
然后会把数据加载进Form3的datagridview中。
给datagridview添加一个双击事件。
当事件触发的时时候:
if(datagridview1.selectedrows !=null ) //判断你是否有选中的数据。
{
//然后把Form1 new一下
Form1 frm = new Form1();
frm.id = int.parse(datagridview1.selectedrows[0].cells[0].value.tostring()); //datagridview中的结构是你建的,你肯定知道哪个列存的是什么吧。这里假设是第一列。这句语句的意思就是把你选中行的第一个单元格的内容转成ID,赋值给Form1下的id变量。
然后窗口关闭的时候。。。。哎呀。。对了。你也许不知道。。这种窗体用模式窗体打开会好点。
就是ShowDialog这种方法。。因为有返回值。好判断,不用你再建变量,或是传参数了。等后面我写一段给你看,接着说。
窗口关闭的时候让Form1的textbox.Text =id.tostring();不就可以了么?
}
//模式窗体,比如用Form1的按钮打开Form3
if(Form3.ShowDialog() == DialogResault.Yes)
{
//这里添加的内容就是当窗口关闭,并且返回值为yes的时候。你可以把textbox1.Text=id.tostring();放到这里
}
//当然,你还要在Form3的关闭按钮或事件中添加让返回值为yes的语句。比如
按钮事件
{
this.close();
dialogresault =dialogresault.Yes; //就这么简单。按了这个按钮就关闭窗口,并将YES返回。
}
同理。Form2。只要跟在Form1后面new一下.把Form2下的公用变量赋值就好。。
我一般都是这么作的。。如果你想用我的方法,还有什么不明白的就追问吧。
不过应该很简单。举例说一下吧:
Form1:
在这个窗体下建一个公共的变量 public int id;
这个变量用来保存你的ID;
当你双击按钮的时候Form3会Show出来对吧。
然后会把数据加载进Form3的datagridview中。
给datagridview添加一个双击事件。
当事件触发的时时候:
if(datagridview1.selectedrows !=null ) //判断你是否有选中的数据。
{
//然后把Form1 new一下
Form1 frm = new Form1();
frm.id = int.parse(datagridview1.selectedrows[0].cells[0].value.tostring()); //datagridview中的结构是你建的,你肯定知道哪个列存的是什么吧。这里假设是第一列。这句语句的意思就是把你选中行的第一个单元格的内容转成ID,赋值给Form1下的id变量。
然后窗口关闭的时候。。。。哎呀。。对了。你也许不知道。。这种窗体用模式窗体打开会好点。
就是ShowDialog这种方法。。因为有返回值。好判断,不用你再建变量,或是传参数了。等后面我写一段给你看,接着说。
窗口关闭的时候让Form1的textbox.Text =id.tostring();不就可以了么?
}
//模式窗体,比如用Form1的按钮打开Form3
if(Form3.ShowDialog() == DialogResault.Yes)
{
//这里添加的内容就是当窗口关闭,并且返回值为yes的时候。你可以把textbox1.Text=id.tostring();放到这里
}
//当然,你还要在Form3的关闭按钮或事件中添加让返回值为yes的语句。比如
按钮事件
{
this.close();
dialogresault =dialogresault.Yes; //就这么简单。按了这个按钮就关闭窗口,并将YES返回。
}
同理。Form2。只要跟在Form1后面new一下.把Form2下的公用变量赋值就好。。
我一般都是这么作的。。如果你想用我的方法,还有什么不明白的就追问吧。
更多追问追答
追问
bu不是很明白呀!
追答
79071195 我QQ 加我
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Form1:
private void button1_Click(object sender, EventArgs e)
{
Form2 f = new Form2();
if (f.ShowDialog() == DialogResult.OK)
{
this.textBox1.Text = f.ReturnID + f.ReturnContent;
}
}
Form2:
public string ReturnID { get; set; }
public string ReturnContent { get; set; }
private void Form2_Load(object sender, EventArgs e)
{
dataGridView1.Rows.Add(new object[] { 1, "A1"});
dataGridView1.Rows.Add(new object[] { 2, "A2" });
}
private void dataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
{
this.ReturnID = dataGridView1.Rows[e.RowIndex].Cells[this.ID.Index].Value.ToString();
this.ReturnContent = dataGridView1.Rows[e.RowIndex].Cells[this.Content.Index].Value.ToString();
this.DialogResult = DialogResult.OK;
}
Form3同Form1
private void button1_Click(object sender, EventArgs e)
{
Form2 f = new Form2();
if (f.ShowDialog() == DialogResult.OK)
{
this.textBox1.Text = f.ReturnID + f.ReturnContent;
}
}
Form2:
public string ReturnID { get; set; }
public string ReturnContent { get; set; }
private void Form2_Load(object sender, EventArgs e)
{
dataGridView1.Rows.Add(new object[] { 1, "A1"});
dataGridView1.Rows.Add(new object[] { 2, "A2" });
}
private void dataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
{
this.ReturnID = dataGridView1.Rows[e.RowIndex].Cells[this.ID.Index].Value.ToString();
this.ReturnContent = dataGridView1.Rows[e.RowIndex].Cells[this.Content.Index].Value.ToString();
this.DialogResult = DialogResult.OK;
}
Form3同Form1
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
form1中
from2 f2=new from2(this)
f2.show();
from2 中
重写构造函数
private form1 f;
public form2(form1 f)
{
this.f=f;
init()//窗体生成器函数考进来
}
form2 的CellDoubleClick事件
this.f.TextBox1.Text=dr.Cells["DlsName"].Value.ToString();
TextBox1 public
可以了
from2 f2=new from2(this)
f2.show();
from2 中
重写构造函数
private form1 f;
public form2(form1 f)
{
this.f=f;
init()//窗体生成器函数考进来
}
form2 的CellDoubleClick事件
this.f.TextBox1.Text=dr.Cells["DlsName"].Value.ToString();
TextBox1 public
可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询