架構師_程序員

 找回密碼
 注冊[Register]

QQ登錄

只需一步,快速開始

查看: 2706|回復: 1

[WinForm] 在Winform 窗體之間 委托傳值

[復制鏈接]
跳轉到指定樓層
樓主
發表于 2015-12-28 12:27:20
zu
第一個窗體(也就是主窗體):

  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Windows.Forms;

  9. namespace winformDelegate
  10. {
  11.     public partial class Form1 : Form
  12.     {
  13.         public Form1()
  14.         {
  15.             InitializeComponent();
  16.         }

  17.         private void button1_Click(object sender, EventArgs e)
  18.         {
  19.            Form2 frm=new Form2();
  20.            frm.Myevent += GetValue;
  21.             frm.Show();
  22.         }

  23.         public void GetValue(string text)
  24.         {
  25.             textBox1.Text = text;
  26.         }
  27.     }
  28. }
復制代碼


第二個窗體:
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Windows.Forms;

  9. namespace winformDelegate
  10. {
  11.     public partial class Form2 : Form
  12.     {
  13.         public delegate void DelegaeValue
  14.             (string text);

  15.         public event DelegaeValue Myevent;

  16.         protected virtual void ValueInformation(string text)
  17.         {
  18.             DelegaeValue handler = Myevent;
  19.             if (handler != null)
  20.                 handler(text);
  21.         }

  22.         public Form2()
  23.         {
  24.             InitializeComponent();
  25.         }

  26.         private void button1_Click(object sender, EventArgs e)
  27.         {
  28.             if (Myevent != null)
  29.             {
  30.             }
  31.             ValueInformation(textBox1.Text);
  32.         }


  33.     }
  34. }
復制代碼






上一篇:form的onsubmit事件--表單提交前的驗證最佳實現方式
下一篇:淺析JSONP-解決Ajax跨域訪問問題
帖子永久地址: 

架構師_程序員 - 論壇版權1、本主題所有言論和圖片純屬會員個人意見,與本論壇立場無關
2、本站所有主題由該帖子作者發表,該帖子作者與架構師_程序員享有帖子相關版權
3、其他單位或個人使用、轉載或引用本文時必須同時征得該帖子作者和架構師_程序員的同意
4、帖子作者須承擔一切因本文發表而直接或間接導致的民事或刑事法律責任
5、本帖部分內容轉載自其它媒體,但并不代表本站贊同其觀點和對其真實性負責
6、如本帖侵犯到任何版權問題,請立即告知本站,本站將及時予與刪除并致以最深的歉意
7、架構師_程序員管理員和版主有權不事先通知發貼者而刪除本文

碼農網,只發表在實踐過程中,遇到的技術難題,不誤導他人。
沙發
 樓主| 發表于 2017-8-17 11:28:12


不用委托也能傳值

窗體一代碼:

  1. public partial class Form1 : Form
  2.     {
  3.         public Form1()
  4.         {
  5.             InitializeComponent();
  6.         }

  7.         private void button1_Click(object sender, EventArgs e)
  8.         {
  9.             Form2 f = new Form2();
  10.             var result = f.ShowDialog();         
  11.             if (result == DialogResult.OK)
  12.             {
  13.                 MessageBox.Show(f.str);
  14.             }
  15.         }
  16.     }
復制代碼


窗體二代碼:

  1. public partial class Form2 : Form
  2.     {
  3.         public string str = string.Empty;
  4.         public Form2()
  5.         {
  6.             InitializeComponent();
  7.         }

  8.         private void button1_Click(object sender, EventArgs e)
  9.         {
  10.             str = textBox1.Text.Trim();
  11.             this.DialogResult = DialogResult.OK;
  12.         }
  13.     }
復制代碼


碼農網,只發表在實踐過程中,遇到的技術難題,不誤導他人。
您需要登錄后才可以回帖 登錄 | 注冊[Register]

本版積分規則

免責聲明:
碼農網所發布的一切軟件、編程資料或者文章僅限用于學習和研究目的;不得將上述內容用于商業或者非法用途,否則,一切后果請用戶自負。本站信息來自網絡,版權爭議與本站無關。您必須在下載后的24個小時之內,從您的電腦中徹底刪除上述內容。如果您喜歡該程序,請支持正版軟件,購買注冊,得到更好的正版服務。如有侵權請郵件與我們聯系處理。

Mail To:help@itsvse.com

QQ|Archiver|手機版|小黑屋|架構師 ( 魯ICP備14021824號-2 )|網站地圖

GMT+8, 2019-12-6 12:36

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回復 返回頂部 返回列表
吉林快三走势图