徹底解決VB.NET窗體繼承相關(guān)問題
VB.NET中對(duì)于窗體的處理方式有很多種,比如在對(duì)無規(guī)則窗體的操作方法等等。那么我們就可以通過這篇文章介紹的有關(guān)VB.NET窗體繼承方式來對(duì)窗體的處理進(jìn)行一個(gè)深入的研究,加什么我們對(duì)這方面的認(rèn)知程度。
1、創(chuàng)建一個(gè)基窗體Form1,在窗體中放入三個(gè)TextBox,為別為TextBox1 TextBox2 TextBox3
2、為TextBox1增加KeyDown事件(當(dāng)在TextBox1中按下ENTER鍵時(shí),自動(dòng)跳至TextBox2 ),代碼如下:
- Private Sub TextBox1_KeyDown
- (ByVal sender As Object, ByVal
- e As System.Windows.Forms.
- KeyEventArgs) Handles
- TextBox1.KeyDown
- If e.KeyCode = Keys.Enter
- Then TextBox2.Focus()
- End Sub
3、添加VB.NET窗體繼承,選擇Form1為基窗體,這樣就創(chuàng)建了一個(gè)繼承窗體。只是此時(shí)窗體內(nèi)的控件不能做修改(屬性/事件)
4、如果希望將繼承窗體中TextBox1的KeyDown事件修改,需要將基窗體中TextBox1中KeyDown事件修改為:
- Public Overridable Sub TextBox1_KeyDown
(ByVal sender As Object, ByVal e
As System.Windows.Forms.KeyEventArgs)
Handles TextBox1.KeyDown- If e.KeyCode = Keys.Enter Then
TextBox2.Focus()- End Sub
注意:此處將原來的“Private ” 修改為“Public Overridable”
而后下面的代碼復(fù)制到VB.NET窗體繼承中即可:
- Public Overrides Sub TextBox1_
KeyDown(ByVal sender As Object,
ByVal e As System.Windows.
Forms.KeyEventArgs) Handles
TextBox1.KeyDown- If e.KeyCode = Keys.Enter
Then TextBox3.Focus()- End Sub
5、此時(shí)繼承窗體中的TextBox1控件的屬性欄為灰色(即不能修改),如需要做控件屬性做修改操作,請(qǐng)修改基窗體中的代碼。#t#
在基窗體From1代碼[Windows 窗體設(shè)計(jì)器生成的代碼] 部分,找到
- Friend WithEvents TextBox1
As System.Windows.Forms.TextBox
將“Friend”修改為 “Public ”即可
6、VB.NET窗體繼承中需要注意的是:
在設(shè)計(jì)時(shí),當(dāng)生成包含基窗體的項(xiàng)目時(shí),對(duì)基窗體外觀所做的更改(屬性的設(shè)置或控件的增減)將在繼承的窗體上反映。僅將更改保存到基窗體是不夠的。若要生成項(xiàng)目,請(qǐng)從“生成”菜單選擇“生成”。