真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

vb.net重寫控件,winform重寫控件

vb.net自定義控件問題

首先,你已經(jīng)完成的步驟是:

專注于為中小企業(yè)提供成都網(wǎng)站設(shè)計、網(wǎng)站制作、外貿(mào)營銷網(wǎng)站建設(shè)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)右玉免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了成百上千企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

1.新建一個用戶控件[注意,用戶控件(UserControl)不是自定義控件(CustomControl)]

2.給用戶控件起個名字(我在此處起名叫 RadioList)

3.在用戶控件上畫一個 GroupBox,命名為 RadioGroup,

并將其 Dock 屬性設(shè)置為 Fill

然后,你需要做的是動態(tài)增減控件。

如果你以前用過 VB 6,你可能會想到控件數(shù)組,

但在此處,你可以直接增刪控件。

具體實(shí)現(xiàn)如下:

4.在 GroupBox 里畫一個 FlowLayoutPanel,命名為 RadioPanel,

將其 AutoScroll 屬性設(shè)置為 True,即自動顯示滾動條,

并設(shè)置其 FlowDirection 屬性(例如設(shè)置為 TopDown)

這樣就省去了手動調(diào)整 RadioButton 位置的麻煩

5.實(shí)現(xiàn)選項的動態(tài)增減(以下只是我的思路,你可以發(fā)揮一下)

(十分簡潔,注釋除外):

''' summary

''' 創(chuàng)建一個新的 RadioButton。

''' /summary

Private Function CreateRadio() As RadioButton

Dim NewRadio As New RadioButton

components.Add(NewRadio)

'components 字段由控件設(shè)計器自動創(chuàng)建,

'此代碼目的是使控件在銷毀(Dispose)時能自動銷毀 RadioButton

'詳情參見 RadioList.Designer.vb

NewRadio.Parent = RadioPanel

'設(shè)置容器

AddHandler NewRadio.CheckedChanged, AddressOf RadioButtons_CheckedChanged

'設(shè)置事件處理程序

Return NewRadio

End Function

''' summary

''' 移除已存在的 RadioButton。

''' /summary

Private Sub RemoveRadio(ByVal dest As RadioButton)

components.Remove(dest)

dest.Dispose()

End Sub

'無中生有的 RadioButton 的事件處理程序

Private Sub RadioButtons_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)

'在此處設(shè)置選中項的屬性,通過 sender 來確定不同的 OptionButton

'你可以通過將 OptionButton 放在一個列表,

'如 List(Of OptionButton) 中來像數(shù)組一樣維護(hù)選項的次序

'注意,此處需要判斷 sender 的 Checked 屬性是否為 True

'因為 Changed 是“改變”,而不是“選中”

'例如:

If DirectCast(sender, RadioButton).Checked Then

SelectedIndex = ...

End If

End Sub

如何在 vb.net 為動態(tài)生成的控件添加事件并傳遞數(shù)據(jù)

'把圖片的聲明放在外面,類里面過程外面,而且要用As,不然等會兒沒法用

Dim myPicture As New System.Windows.Forms.PictureBox()

'動態(tài)生成的控件,加一行

Private Sub UserControl1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load

Me.Panel3.Controls.Add(myPicture)

myPicture.Size =New System.Drawing.Size(115, 160)

myPicture.TabStop =False

myPicture.Name ="p"

myPicture.Cursor = Cursors.Hand

AddHandler myPicture.Click, AddressOf mypic_Click '添加事件

AddHandler returnid, AddressOf idReturned '綁定事件和過程

End Sub

'再來個事件,放在聲明的地方,就是類里面、過程外面

Private Event returnid(ByVal id As String) '這個事件可以傳遞值哦~

'普通的單擊事件

Private Sub mypic_Click()

RaiseEvent returnid(myPicture.Name)

End Sub

'會傳值的事件過程

Private Sub idReturned(ByVal id As String)

Dim bookInfo As New BookInfo

bookInfo.Show()

Me.Parent.Enabled = False

'用id變量做點(diǎn)什么吧

End Sub

如果要改事件的簽名(參數(shù)一類的)的話,得重寫控件。你可以這樣自己弄一個事件。

vb.net 如何重繪Label控件?

新建一個Winform,在和Form1平行的位置粘貼如下代碼

Public Class MyLabel Inherits Label Protected Overrides Sub OnPaint(e As PaintEventArgs) e.Graphics.DrawEllipse(New Pen(Color.Red), New Rectangle(2, 2, 10, 10)) MyBase.OnPaint(e) End Sub End Class

運(yùn)行,停掉,在工具箱找到MyLabel,拖動就可以看到效果。這只是最基本的重寫,要模仿QQ還需要其他技術(shù)以及美工。


名稱欄目:vb.net重寫控件,winform重寫控件
鏈接URL:http://weahome.cn/article/hcohje.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部