winform 窗体传值问题

xingn 2009-06-02 05:31:56
A窗体有个treeview
双击A窗体treeview的节点,把节点的text
传到B窗体中
...全文
173 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
zenowolf 2009-06-03
  • 打赏
  • 举报
回复
补充一点将model类作成单例类一般。。。
zenowolf 2009-06-03
  • 打赏
  • 举报
回复

Public Class Model
{
private string _value;// 以string 为例
public string FormData
{
set{_value=value;}
get{return _value;}
}
}

在 A 中Model.FormData="";
然后再 B中 string str_From_A_Data=Model.FormData;
也可以将 Model :HashTable...重写add,remove等方法。。
kevinhu520 2009-06-03
  • 打赏
  • 举报
回复
A窗体定义
public delegate void DepItem(string Dep);
public DepItem depiem;
DoubleClick事件

B窗体定义
private void DepItem(string dep)
{
txtDep.Text = dep;
}
youqi1984 2009-06-02
  • 打赏
  • 举报
回复
委托,构造函数
qiweihero 2009-06-02
  • 打赏
  • 举报
回复
用数据库存储
ginni215 2009-06-02
  • 打赏
  • 举报
回复
找一点委托事件的相关资料,一看你就会了~~
zhaoweiting0609 2009-06-02
  • 打赏
  • 举报
回复
string a=treeView1.SelectedNode.Text 

取值
gui0605 2009-06-02
  • 打赏
  • 举报
回复
通过属性来传
十八道胡同 2009-06-02
  • 打赏
  • 举报
回复
你可以用个全局变量来传递。
  • 打赏
  • 举报
回复
窗口A,B
定义一个类Global
public static Form frmB;
在B构造函数中Global.frmB=this;
然后在A中用Global.frmB就达到了目的

楼主,我回答了一定要给分啊,不然对不起观众啊
redleafe 2009-06-02
  • 打赏
  • 举报
回复
我是来学习的,顺便顶一下。
兔儿爷 2009-06-02
  • 打赏
  • 举报
回复
我的博客 程序员日记 http://www.ideaext.com 欢迎交流
yunshu2003 2009-06-02
  • 打赏
  • 举报
回复
上面的用到了IList了.楼主估计晕了吧。

比较简单的:

在B中:
public string myText;

在A中:
string a=treeView1.SelectedNode.Text
B frmB=new B()//实例化B窗口
frmB.myText=a;
fengjian_428 2009-06-02
  • 打赏
  • 举报
回复
一种方法是在A窗体的构造函数中加入一个B窗体的TEXTBOX 因为你是在B窗体中实例化A窗体的
然后点节点的时候就把节点值赋给B窗体的TEXTBOX
zealot1021 2009-06-02
  • 打赏
  • 举报
回复

public delegate void CustomEventHandler(IList<Pro_producePlanBillDetail> returnListProPlanDetail);
public event CustomEventHandler CustomEvent;/在窗体A定义委托和事件


private void btnOK_Click(object sender, EventArgs e)
{
#region 确定
IList<Pro_producePlanBillDetail> ListCheckedPlanDetail = new List<Pro_producePlanBillDetail>();

for (int i = 0; i < ListProPlanDetail.Count; i++)
{
if (Convert.ToBoolean(this.dgvDetail.Rows[i].Cells["Column1"].Value))
{
ListCheckedPlanDetail.Add(ListProPlanDetail[i]);
}
}

if (ListCheckedPlanDetail.Count > 0)
{
if (CustomEvent != null)
{
CustomEvent(ListCheckedPlanDetail);//在窗体A发布事件
}
}
this.Close();
#endregion
}



private void 选择单据ToolStripMenuItem_Click(object sender, EventArgs e)//在窗体B调用窗体A并注册事件
{
if (this.cboProName.Tag == null)
{
MessageBox.Show("请选择产品","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
return;
}
ProProduct pro=(ProProduct)this.cboProName.Tag;
frmChooseProPlan frmChoosePlan = new frmChooseProPlan(pro);
frmChoosePlan.CustomEvent += new frmChooseProPlan.CustomEventHandler(frmChoosePlan_CustomEvent);
frmChoosePlan.ShowDialog();
}

private void frmChoosePlan_CustomEvent(IList<Pro_producePlanBillDetail> returnListProPlanDetail)//自定义的事件处理方法
{
//接收到从A传过来的值后进行相应操作
}
chaozi_249 2009-06-02
  • 打赏
  • 举报
回复
目前还没有涉及到这方面,学习。
mark,顶下
yingzhilian2008 2009-06-02
  • 打赏
  • 举报
回复
AfterSelect事件

110,537

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧