VisualC實(shí)現(xiàn)窗體間數(shù)據(jù)傳遞_第1頁(yè)
VisualC實(shí)現(xiàn)窗體間數(shù)據(jù)傳遞_第2頁(yè)
VisualC實(shí)現(xiàn)窗體間數(shù)據(jù)傳遞_第3頁(yè)
VisualC實(shí)現(xiàn)窗體間數(shù)據(jù)傳遞_第4頁(yè)
VisualC實(shí)現(xiàn)窗體間數(shù)據(jù)傳遞_第5頁(yè)
已閱讀5頁(yè),還剩1頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、VisualC#實(shí)現(xiàn)窗體間數(shù)據(jù)傳遞設(shè)計(jì)思路此方法實(shí)現(xiàn)二個(gè)功能:其一,主窗體能夠?qū)崟r(shí)地向從窗體傳送數(shù)據(jù),表現(xiàn)為當(dāng)更改主窗體中的跟蹤條(TrackBar)的數(shù)值,從窗體中定義的一個(gè)Label組件就顯示出跟蹤條的當(dāng)前數(shù)值;其二,從窗體能夠向主窗體提出數(shù)據(jù)請(qǐng)求,并且能夠獲取主窗體中各組件顯示的數(shù)據(jù)。程序表現(xiàn)為,當(dāng)單擊從窗體中的【從Forml中獲取數(shù)據(jù)】按鈕,程序能夠把主窗體中的二個(gè)TextBox組件顯示的內(nèi)容傳遞到從窗體,并且通過(guò)從窗體中的二個(gè)TextBox組件分別顯示出來(lái)。第一個(gè)功能的實(shí)現(xiàn)思路是把從窗體看成是主窗體的一個(gè)實(shí)例,加入到從窗體中的組件,可以看出是從窗體中定義的一個(gè)個(gè)變量,由于從窗體中加入

2、的組件的組件缺省定義類型是Private(私有的),所以要想訪問(wèn)這些組件,必須改變?yōu)镻ublic(共有的);而第二個(gè)功能的實(shí)現(xiàn)思路是通過(guò)修改Form2的構(gòu)造函數(shù),構(gòu)造函數(shù)實(shí)現(xiàn)功能是通過(guò)Forml類的實(shí)例(即為主窗體)來(lái)創(chuàng)建并初始化Form2類的實(shí)例(即為從窗體)。這樣對(duì)于從窗體來(lái)說(shuō),主窗體則為其一個(gè)實(shí)例,從而也就可以向主窗體提出數(shù)據(jù)請(qǐng)求,當(dāng)然要把需要訪問(wèn)的各組件定義類型從缺省的Private(私有的)類型修改為Public(共有的)。上述二個(gè)功能的實(shí)現(xiàn)方法,第二種方法比較復(fù)雜,希望各位能夠結(jié)合后面的具體實(shí)現(xiàn)代碼來(lái)理解。第二種窗體間的數(shù)據(jù)傳遞情況實(shí)現(xiàn)步驟1首先創(chuàng)建一個(gè)VisualC#的項(xiàng)目文件,

3、項(xiàng)目名稱為【VC#中不同窗體數(shù)據(jù)傳遞方法02】。把VisualStudio.Net的當(dāng)前窗口切換到【Form1.cs(設(shè)計(jì))】窗口,并從【工具箱】中的【W(wǎng)indows窗體】選項(xiàng)卡中拖入下列組件到【Form1.cs(設(shè)計(jì))】窗體中,并執(zhí)行相應(yīng)操作:二個(gè)TextBox組件,用以輸入向Form2窗體傳送的數(shù)據(jù)二個(gè)Label組件一個(gè)TrackBar組件,名稱為trackBarl。把VisualStudio.Net的當(dāng)前窗口切換到【Forml.cs】窗口,即:Form1.cs的代碼編輯窗口。并用下列代碼替換替代系統(tǒng)產(chǎn)生的InitializeComponent過(guò)程。privatevoidInitializ

4、eComponent()this.label1=newSystem.Windows.Forms.Label();this.label2=newSystem.Windows.Forms.Label();this.textBox1=newSystem.Windows.Forms.TextBox();this.textBox2=newSystem.Windows.Forms.TextBox();this.trackBar1=newSystem.Windows.Forms.TrackBar()(System.ComponentModel.ISupportInitialize)(this.trackBa

5、r1).BeginInit();this.SuspendLayout();this.label1.Location=newSystem.Drawing.Point(27,41);this.label1.Name=label1;this.label1.TabIndex=0;this.label1.Text=歡迎詞:;this.label2.Location=newSystem.Drawing.Point(27,83);this.label2.Name=label2;this.label2.TabIndex=1;this.label2.Text=提示信息:;this.textBox1.Locati

6、on=newSystem.Drawing.Point(108,38);this.textBox1.Name=textBox1;this.textBox1.TabIndex=2;this.textBox1.Text=;this.textBox2.Location=newSystem.Drawing.Point(109,78);this.textBox2.Name=textBox2;this.textBox2.TabIndex=3;this.textBox2.Text=;this.trackBar1.LargeChange=1;this.trackBar1.Location=newSystem.D

7、rawing.Point(12,182);this.trackBar1.Maximum=100;this.trackBar1.Name=trackBar1;this.trackBar1.Size=newSystem.Drawing.Size(272,42);this.trackBar1.TabIndex=1;this.trackBar1.ValueChanged+=newSystem.EventHandler(this.trackBar1_ValueChanged);this.AutoScaleBaseSize=newSystem.Drawing.Size(6,14);this.ClientS

8、ize=newSystem.Drawing.Size(292,273);this.Controls.AddRange(newSystem.Windows.Forms.Controlthis.trackBar1,this.textBox2,this.textBox1,this.label2,this.label1)this.MaximizeBox=false;this.MinimizeBox=false;this.Name=Form1;this.Text=Form1;this.Load+=newSystem.EventHandler(this.Form1_Load);(System.Compon

9、entModel.ISupportInitialize)(this.trackBar1).EndInit();this.ResumeLayout(false);由于從窗體向主窗體提出的數(shù)據(jù)請(qǐng)求是二個(gè)TextBox組件的Text屬性值,所以要修改Forml.cs文件中這二個(gè)TextBox組件的定義類型,把缺省定義為private類型修改為public類型,修改后的這二個(gè)TextBox組件在Forml.cs中的定義語(yǔ)句如下:publicSystem.Windows.Forms.TextBoxtextBox1;publicSystem.Windows.Forms.TextBoxtextBox2;在上

10、述代碼后面再添加下面代碼,下面代碼是創(chuàng)建一個(gè)Form2類的實(shí)例m_Form,即從窗體:privateForm2m_Form;5在Form1.cs中的Main函數(shù)后,添加下列代碼,下列代碼的功能是實(shí)現(xiàn)當(dāng)修改主窗體中的跟蹤條數(shù)值后,從窗體中的label3組件的顯示數(shù)值能夠隨之而變化,這樣就實(shí)現(xiàn)主窗體實(shí)時(shí)傳遞數(shù)據(jù)到從窗體了:privatevoidtrackBar1_ValueChanged(objectsender,System.EventArgse)m_Form.label3.Text=trackBar1.Value.ToString();6在添加完上面代碼,并在其后部,再添加下列代碼,下列代碼的

11、功能是使用Form2類的構(gòu)造函數(shù),并通過(guò)Forml類的實(shí)例來(lái)創(chuàng)建并初始化Form2類的實(shí)例。在項(xiàng)目文件中加入Form2類,并修改Form2類的構(gòu)造函數(shù)工作將在本節(jié)的第7到11步驟中完成。privatevoidForm1_Load(objectsender,System.EventArgse)m_Form=newForm2(this);/通過(guò)主窗體來(lái)創(chuàng)建、初始化從窗體m_Form.Show();/顯示從窗體7選擇菜單【項(xiàng)目】I【添加Windows窗體】后,彈出【添加新項(xiàng)一VC#中不同窗體數(shù)據(jù)傳遞方法01】對(duì)話框。在此對(duì)話框中的【名稱(N):】文本框中輸入【Form2】后,單擊【打開(kāi)】按鈕,則在V

12、C#中不同窗體數(shù)據(jù)傳遞方法01項(xiàng)目中添加了一個(gè)新的窗體,名稱為【Form2】。把VisualStudio.Net的當(dāng)前窗口切換到【Form2.cs(設(shè)計(jì))】窗口,并從【工具箱】中的【W(wǎng)indows窗體】選項(xiàng)卡中拖入下列組件到【Form2.cs(設(shè)計(jì))】窗體中,并執(zhí)行相應(yīng)操作:二個(gè)TextBox組件,用以顯示向主窗體請(qǐng)求獲得的數(shù)據(jù)。二個(gè)Label組件。一個(gè)Button組件,名稱為buttonl。把VisualStudio.Net的當(dāng)前窗口切換到【Form2.cs】窗口,即:Form2.cs的代碼編輯窗口。并用下列代碼替換替代系統(tǒng)產(chǎn)生的InitializeComponent過(guò)程。this.text

13、Box1=newSystem.Windows.Forms.TextBox();this.textBox2=newSystem.Windows.Forms.TextBox();this.label2=newSystem.Windows.Forms.Label();this.label1=newSystem.Windows.Forms.Label();this.button1=newSystem.Windows.Forms.Button();this.label3=newSystem.Windows.Forms.Label();this.SuspendLayout();this.textBox1.

14、Location=newSystem.Drawing.Point(95,42)this.textBox1.Name=textBox1;this.textBox1.Size=newSystem.Drawing.Size(125,21);this.textBox1.TabIndex=2;this.textBox1.Text=;this.textBox2.Location=newSystem.Drawing.Point(94,80)this.textBox2.Name=textBox2;this.textBox2.Size=newSystem.Drawing.Size(127,21);this.te

15、xtBox2.TabIndex=3;this.textBox2.Text=;this.label2.Location=newSystem.Drawing.Point(27,83);this.label2.Name=label2;this.label2.TabIndex=5;this.label2.Text=提示信息:;this.label1.Location=newSystem.Drawing.Point(38,45);this.label1.Name=label1;this.label1.TabIndex=4;this.label1.Text=歡迎詞:;this.button1.Locati

16、on=newSystem.Drawing.Point(80,136);this.button1.Name=button1;this.button1.Size=newSystem.Drawing.Size(135,53);this.button1.TabIndex=6;this.buttonl.Text=從Forml中獲取數(shù)據(jù);this.button1.Click+=newSystem.EventHandler(this.button1_Click)this.label3.Location=newSystem.Drawing.Point(102,210);this.label3.Name=lab

17、el3;this.label3.TabIndex=7;this.AutoScaleBaseSize=newSystem.Drawing.Size(6,14);this.ClientSize=newSystem.Drawing.Size(292,273);this.Controls.AddRange(newSystem.Windows.Forms.Controlthis.label3,this.button1,this.textBox2,this.textBox1,this.label2,this.label1);this.MaximizeBox=false;this.MinimizeBox=f

18、alse;this.Name=Form2;this.Text=Form2;this.ResumeLayout(false);由于主窗體是把其中的跟蹤條的數(shù)值通過(guò)從窗體中的label組件來(lái)顯示的,所以必須把Form2.cs文件中創(chuàng)建label3組件時(shí)定義的private類型修改為public類型,修改后的創(chuàng)建label3組件的代碼為:publicSystem.Windows.Forms.Labellabel3;由于Form2類的實(shí)例是通過(guò)Form1類的實(shí)例來(lái)初始化,所以在創(chuàng)建label3組件后面添加下列代碼,下列代碼是創(chuàng)建一個(gè)Form1類的實(shí)例,其作用是初始化Form2類的實(shí)例(即從窗體):privateForm1mF_Form;修改Form2類的構(gòu)造函數(shù),具體操作如下,用下列代碼替換Form2.cs中缺省的構(gòu)造函數(shù):publicForm2(Form1myForm)/Windows窗體設(shè)計(jì)器支持所必需的/InitializeComponent();this.mF_Form=myForm;/TODO:在

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論