关闭

winform窗体间传值的问题

286人阅读 评论(0) 收藏 举报

关于winform窗体间传值的解决方法已经有很多了,但我个人还是觉得通过中间对象的方法来实现好一些:

首先来定义一个中间对象Sender

using System;
using System.Text;
using System.Collections.Generic;
namespace demo

    
public class Observe 
    {  
        
private string strText;    
        
public string StrText
         {
            
get     
            {
              
return strText;
            }   
            
set
            {   
              strText 
= value;  
            } 
        }  
       
public Observe()
        {  
           
// TODO: 在此处添加构造函数
        } 
    }

然后在Form2(即发送值的窗体)中定义一个Observe成员
 
 private Observe o_Observer;
  
public Observe observe
  {
   
set
   {
    
this.o_Observer = value;
   }
  }
在Form2的事件处理中改变o_Observe的StrText
 
private void button1_Click(object sender, System.EventArgs e)
  {
   o_Observer.StrText 
= this.textBox1.Text;
   
this.Close();
  }

然后在Form1(即接收值的窗体中)取得Form2传来的值

       private void button1_Click(object sender, EventArgs e)
        {
            Form2 fm
= new Form2();
            fm.observe 
= o_Observe;
            fm.ShowDialog();
            
if (o_Observe.strText != null)
                Textbox1.Text 
= o_Observe.strText;
        }
 
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:245144次
    • 积分:3373
    • 等级:
    • 排名:第9960名
    • 原创:21篇
    • 转载:306篇
    • 译文:3篇
    • 评论:42条