C# 关于窗体间数据的传递

C# 关于窗体间数据的传递

	在初学C# Winform过程中,需要在窗体间传递数据
	学习了三种简单的传递方法如下:
  1. 使用构造方法(单向传递)

		父窗体:
    		public partial class Form1 : Form
    		{
    
    
    		    public Form1()
    		    {
    
    
    		        InitializeComponent();
    		    }
		
    		    private void button_frm1_Click(object sender, EventArgs e)
    		    {
    
    
   		         Form2 f2 = new Form2(textBox_frm1.Text);
   		         f2.Show();
       			}
   		 	}

		子窗体:
            public partial class Form2 : Form
   		 	{
    
    
   		    	 public Form2(string value)
   		     	{
    
    
   		     	    InitializeComponent();
   		      	   textBox_frm2.Text = value;
   		     	}
  		  	}
  		  	
  1. 使用公共静态变量
演示:
        	父窗体:
		        public partial class Form1 : Form
		    {
    
    
		        public Form1()
		        {
    
    
		            InitializeComponent();
		        }
		
		        private void button_frm1_Click(object sender, EventArgs e)
		        {
    
    
		            Temp.value = textBox_frm1.Text;
		            Form2 f2 = new Form2();
		            f2.Show();
		        }
		    }

			子窗体:
 	   	 		public partial class Form2 : Form
 	   		  {
    
    
 	       		public Form2()
 	       		{
    
    
 	       		    InitializeComponent();
 	       		}
	
 	       		private void Form2_Load(object sender, EventArgs e)
 	       		{
    
    
                    textBox_frm2.Text = Temp.value; 
	       		 }
	  		  }

			中间类:
                    class Temp
    			{
    
    
    				public static string value;//可以写进Form里,省去中间类
   				}
   				

  1. 设置owner
演示:
        	主窗体:-----textbox_frm1的modifiers权限设置为 public
				public partial class Form1 : Form
				{
    
    
					public Form1()
					{
    
    
						InitializeComponent();
					}

					private void button_frm1_Click(object sender, EventArgs e)
					{
    
    
						Form2 f2 = new Form2();
						f2.Show();
						f2.Owner = this;
					}
				}	

			子窗体:
				public partial class Form2 : Form
				{
    
    
					public Form2()
					{
    
    
						InitializeComponent();
					}

					private void Form2_Load(object sender, EventArgs e)
					{
    
    
						Form1 f1 = (Form1)this.Owner;
						textBox_frm2.Text = f1.textBox_frm1.Text;
					}
				}

猜你喜欢

转载自blog.csdn.net/qq_53021331/article/details/115379850