+ -
当前位置:首页 → 问答吧 → 由一窗体传值到另一窗体出现问题

由一窗体传值到另一窗体出现问题

时间:2011-12-20

来源:互联网

功能要求是在窗体A中的树视图中,双击某一结点并将该结点的字符串传回窗体B中的文本框,同时关闭窗体B。

程序代码如下:
窗体A(frm_InsertBookType)中的相关函数:
  string clikednodetext = "T-综合性图书"; // 默认图书类型
  private void tv_InsertBookType_NodeMouseDoubleClick(object sender, TreeNodeMouseClickEventArgs e)
  {
  clikednodetext = e.Node.Text.ToString();
  }

  public string returnclikedbooktype()
  {
  return clikednodetext;
  }

窗体B中的相关函数:
  private void btn_InsertBookType_Click(object sender, EventArgs e)
  {
  frm_InsertBookType nowinsertbooktype = new frm_InsertBookType();
  nowinsertbooktype.ShowDialog();
  this.txt_BookTypeName.Text = nowinsertbooktype.returnclikedbooktype();
  nowinsertbooktype.Close();
  }

程序运行结果却是:
双击之后,窗体B中的txt_BookTypeName文本框没有同时出现文字,并且窗体A(frm_InsertBookType)得手动关闭。也只有在手动关闭窗体A后,窗体B中的txt_BookTypeName文本框才出现所选择的类型。

!! 求高手请教,成分感谢。

作者: nextdoor2   发布时间: 2011-12-20

作者: hefeng_aspnet   发布时间: 2011-12-21

把控件的modifers属性设置为public,然后把B实例传入A,这样就可以 frmB.xxxxx = xxxx这样访问了

ShowDialog当然关不掉了

作者: bdmh   发布时间: 2011-12-21

private void tv_InsertBookType_NodeMouseDoubleClick(object sender, TreeNodeMouseClickEventArgs e)
  {
  clikednodetext = e.Node.Text.ToString();
  B窗体 b=new B窗体();
  b.show();
  this.close();
  }

private void B窗体_Load(object sender, EventArgs e)
  {
  this.txt_BookTypeName.Text = nowinsertbooktype.returnclikedbooktype();
  }


作者: qweeew   发布时间: 2011-12-21

自己定义一个类,专门用来窗体之间传值

作者: cqjiyong   发布时间: 2011-12-21

相关阅读 更多

热门下载

更多