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

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

關于vb.net事件控件的信息

VB.net中怎么調(diào)用控件的事件

軟糖來回答羅。

創(chuàng)新互聯(lián)建站專業(yè)為企業(yè)提供南海網(wǎng)站建設、南海做網(wǎng)站、南海網(wǎng)站設計、南海網(wǎng)站制作等企業(yè)網(wǎng)站建設、網(wǎng)頁設計與制作、南海企業(yè)網(wǎng)站模板建站服務,十年南海做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡服務。

“調(diào)用事件”有歧義,你的意思是不是下面兩種:

調(diào)用事件處理方法

直接調(diào)用對象名.方法名

'例如有這樣一個按鈕點擊事件處理程序

Private?Sub?Button1_Click(sender?As?Object,?e?As?EventArgs)?Handles?Button1.Click

秒表.Start()

End?Sub

'調(diào)用它直接用

Button1_Click(me,?new?EventArgs())

引發(fā)事件

Button1.Click.Invoke(me,?new?EventArgs())

另外?RaiseEvent 也可以引發(fā)事件,但不能使用 RaiseEvent?來引發(fā)派生窗體的控件事件,只有自己定義的類的事件才能用它引發(fā)。

如滿意,請采納,謝謝。

如何在VB.Net中觸發(fā)一個控件的事件

比如你單擊按鈕,就觸發(fā)了按鈕的單擊事件

你雙擊按鈕,就觸發(fā)了按鈕的雙擊事件

如何在 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變量做點什么吧

End Sub

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

(vb.net)動態(tài)添加的控件如何多次響應事件?

熟悉VB的朋友對使用ActiveX控件一定不會陌生,眾多控件極大地方便了編程,但

唯一的缺陷是不能動態(tài)加載控件,必須在設計時通過引用,將控件放置在窗體上。

VB6.0已能夠解決該問題,只是幫助中沒有明確說明,并且沒有描述到一些關鍵功能,

由于以前的版本中可以動態(tài)創(chuàng)建進程外服務:如果對象是外部可創(chuàng)建的,可在 Set 語

句中用 New 關鍵字、CreateObject 或 GetObject 從部件外面將對象引用賦予變量。

如果對象是從屬對象,則需使用高層對象的方法,在 Set 語句中指定一個對象引用:

Dim xlApp1 As Excel.Application

Set xlApp1 = New Excel.Application

Dim xlApp As Object '定義存放引用對象的變量。

Set xlApp = CreateObject("excel.application")

xlApp.Visible = True

---- 這些語法很容易造成誤導,以為動態(tài)加載ActiveX控件也是此方法,可能有朋友也

象我一樣利用CreateObject嘗試了無數(shù)次,卻無功而返,不知微軟公司是出于何種考

慮,動態(tài)加載ActiveX控件是擴展控件集合的方式實現(xiàn),通過實際摸索,終于就如何實

現(xiàn)動態(tài)ActiveX控件找出了一條切實可行的方法,下面以一個具體的實例來詳細說明。

一、ActiveX控件

---- ActiveX 控件是 Visual Basic 工具箱的擴充部分。使用 ActiveX 控件的方法與

使用其它標準內(nèi)裝的控件,如 CheckBox 控件,完全一樣。在程序中加入 ActiveX 控

件后,它將成為開發(fā)和運行環(huán)境的一部分,并為應用程序提供新的功能。

---- ActiveX 部件通過客戶端/服務器關系與應用程序— 及與部件相互之間— 交互作

用。客戶端是使用部件功能的應用程序代碼或部件。服務器是部件及其關聯(lián)的對象。例

如,假設應用程序使用 ActiveX 控件來提供一個標準的雇員窗體,供公司的多種應用

程序使用。提供雇員窗體的 ActiveX 控件就是服務器,使用這個控件的應用程序就是

服務器的客戶端。

二、加載方法

---- VB6.0中對Controls 集合進行了擴展,以前版本中Controls 集合在窗體上列舉出

已加載的控件,這在迭代過程中是很有用的。Controls 集合標識一個叫做 Controls

的內(nèi)在窗體級變量。如果忽略可選的 object 所在處的整數(shù),則關鍵字 Controls 必須

包括在內(nèi)。我們通常在窗口中使用如下代碼:

Text1.Text="Hello, world"

其實也可以使用如下代碼達到同一目的:

Controls(1).Text="Hello, world"

---- 在VB6.0中除了原來的Clear、Remove 方法外(很奇怪,為什么微軟在VB5.0中只提

供這兩種方法,而沒有提供Add方法,因為沒有Add,這兩種方法也就沒什么用處),增

加了Add方法,該方法就是用于動態(tài)加載控件的:

Controls.Add(progid as String, Name as String);

progid: ActiveX部件的ProgID,如:"VB.CheckBox";

Name:ActiveX部件加載后的名稱,如: "MyCheckBox";

若要在窗體上添加一個名為MyButton的按鈕,可以使用:

dim oControl as Object '窗體級變量

注意:這里聲明為Object對象類型

Private Sub LoadControl()

Set oControl = Controls.Add

("VB.CommandButton", "MyButton")

oControl.Left = 10

oControl.Top = 10

oControl.Visible = True '使控件可見

End Sub

---- 這是VB6.0的標準語法,它在例程中也是如此演示的,不過該方法雖然現(xiàn)實了控件

的動態(tài)加載,按鈕顯示在窗體上,可以象普通按鈕一樣按下去,但加載的控件不能預先

設計響應事件代碼,如:事件Sub MyButton_Click()將是非法的,當然,可以將要響應

的事件封裝在控件內(nèi)部。就編程的觀點來看該方法沒什么大的用處,開發(fā)ActiveX控件

的目的是為了資源共享,為了被其他開發(fā)人員利用,所以要提供必要的事件接口,顯然

利用該方法不行,通過分析VBControls等相關對象,找出VBControlExtender對象與

EventInfo相結合能提供事件陷井捕捉,VBControlExtender對象對動態(tài)添加控件特別有

用,它提供了一套通用的屬性、方法、事件給開發(fā)人員,它的一個突出特點是能編程設

計控件的事件,熟習類編程的朋友對帶事件的對象聲明一定不會陌生:

---- Dim WithEvents objElemt as CElemtVBControlExtender也不例外,聲明的語法

一樣,只不過它有個特殊的事件ObjectEvent(Info As EventInfo),它能捕捉到對象使

用RaiseEvent產(chǎn)生的所有事件,EventInfo數(shù)據(jù)結構映射了事件的名稱、參數(shù)個數(shù)和參

數(shù)的值。VBControlExtender和 EventInfo相結合,采用Select Case 就可以預先將不

同類對象的事件放置一起,各自獨立運作。將上面的代碼改寫一下就能提供Click事件

了:

---- Dim WithEvents oControl As VBControlExtender '帶事件聲明聲明之后您就可

以在代碼窗口的左上角的對象下拉框中發(fā)現(xiàn)該對象出現(xiàn)了,也就是說,該對象有了事件

或方法了,它的事件有DragDrop,DragOver ,LostFocus ,GotFocus ,ObjectEvent

和Validate,其中ObjectEvent是通用的事件捕捉。

Private Sub LoadControl()

Set oControl = Controls.Add

("VB. CommandButton", "MyButton")

oControl.Visible = True

End Sub

Private Sub oControl_ObjectEvent(Info As EventInfo)

Select Case Info.Name

Case "Click" 'Click事件

'您可以添加處理Click事件代碼

MsgBox "您按了MyButton!"

Case Else ' 其他事件

' Handle unknown events here.

End Select

End Sub

---- 當然對微軟提供的標準控件能采用該方法添加,大家都不會懷疑,但自己開發(fā)的

控件也能嗎?答案是肯定的,我們可以用一個實際的例子進行說明。

vb.net給控件加事件

兩種方法:

1. 用WithEvents聲明變量,這樣你就可以像對待拖上去的控件一樣操作:

Public?Class?Form3

WithEvents?btn?As?New?Button

Private?Sub?Form3_Load(sender?As?Object,?e?As?EventArgs)?Handles?Me.Load

Controls.Add(btn)

End?Sub

Private?Sub?btn_Click(sender?As?Object,?e?As?EventArgs)?Handles?btn.Click

MsgBox(Now)

End?Sub

End?Class

2. 使用AddHandler 語句:

Public?Class?Form3

Private?Sub?Form3_Load(sender?As?Object,?e?As?EventArgs)?Handles?Me.Load

Dim?btn?As?New?Button

AddHandler?btn.Click,?AddressOf?btn_Click

Controls.Add(btn)

End?Sub

Private?Sub?btn_Click(sender?As?Object,?e?As?EventArgs)

MsgBox(Now)

End?Sub

End?Class

WithEvents (Visual Basic):

AddHandler 語句:


新聞名稱:關于vb.net事件控件的信息
文章來源:http://weahome.cn/article/hjpdhj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部