明輝手游網(wǎng)中心:是一個免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

DotNet Form間數(shù)據(jù)傳遞

[摘要]1.WebForm利用System.Web Namespace 中 HttpResponse Class的Redirect方法傳遞,HttpRequest Class的 QueryString方法接收傳遞來源類webform1 中的某個方法里 使用 Response.Re...

1.WebForm

利用System.Web Namespace 中 HttpResponse Class的Redirect方法傳遞,HttpRequest Class的 QueryString方法接收

傳遞來源類webform1 中的某個方法里 使用

              Response.Redirect ("WebForm2.aspx?s=1&ss=11");

              //HttpResponse 類的方法和屬性通過 ASP.NET 的內(nèi)部 Response 對象公開。

       //所以Response可以使用前者的方法

傳遞目標(biāo)類webform2 中

          private void Page_Load(object sender, System.EventArgs e)

         {

              // 在此處放置用戶代碼以初始化頁面

              int loop1;

              NameValueCollection coll;

              

              //Load Form variables into NameValueCollection variable.

              coll=Request.QueryString ;

              //HttpRequest 類的方法和屬性通過 ASP.NET 的內(nèi)部 Request 對象公開。

              // Get names of all forms into a string array.

              String[] arr1 = coll.AllKeys;         

              for (loop1 = 0; loop1 < arr1.Length; loop1++)

              {

                   Response.Write(arr1[loop1] + " = " + coll.GetValues(arr1[loop1]).GetValue (0)  +"<br>");

              }

 

         }

//這樣就列舉了從webform1傳遞來的s & ss的值

 

 

這里要解釋一下服務(wù)器端控件 <form runat=server></form> , (我覺得)在asp.Net中它只是其他服務(wù)器端控件的容器,不能再像原來的asp那樣可以使用action屬性向其他頁面提交數(shù)據(jù)。下面是MSDN原文:

 

ms-help://MS.VSCC/MS.MSDNVS.2052/cpgenref/html/cpconhtmlformcontrol.htm

 

注意 action 屬性總是設(shè)置為頁本身的 URL。無法更改 action 屬性;因此,只能向頁本身回送。

 

2.         WindowsForm

利用form構(gòu)造函數(shù) Form()傳遞值.

Form Class 可以擁有多個構(gòu)造函數(shù),可以添加一個用來傳值的構(gòu)造函數(shù),如下

         public Form2()

         {

              //

              // Windows 窗體設(shè)計器支持所必需的

              //

              InitializeComponent();

 

              //

              // TODO: 在 InitializeComponent 調(diào)用后添加任何構(gòu)造函數(shù)代碼

              //

          }

 

         public Form2(int iii )

         {

              //

              // Windows 窗體設(shè)計器支持所必需的

              //

              InitializeComponent();

             

//這里添加一個label以顯示傳來的值

              this.label1.Text= iii.ToString ();

              //

              // TODO: 在 InitializeComponent 調(diào)用后添加任何構(gòu)造函數(shù)代碼

              //

         }

 

在打開form2的form1的某個方法里如下使用,可以把123傳給form2

       //WindowsApplication1是我的工程名

 

              WindowsApplication1.Form2 frm2 = new WindowsApplication1.Form2(123);

              frm2.Show ();

 

利用類的屬性傳值。

傳遞目標(biāo)類form2 如下聲明

          private int i2 ;

        

         public int iLen

         {

              get{return i2;}

              set{i2=value;}

         }

         //這里添加一個label以顯示傳來的值

          private void Form2_Load(object sender, System.EventArgs e)

         {

              this.label1.Text = this.i2.ToString ();

         }

 

傳遞來源類form1如下使用

        

              WindowsApplication1.Form2 frm2 = new WindowsApplication1.Form2 ();

              frm2.iLen =1234;

              frm2.Show ();