簡體   English   中英

vb.net參考程序集WithEvents無法正常工作

[英]vb.net Reference Assembly WithEvents not working

我一直在搜尋此書,卻一直找不到答案,因此不勝感激!

我最初是通過.asp頁將此dll作為ActiveX控件使用的,它工作得很好。 我現在必須將其重寫為一堂課,因為老板也問我。 因此,在我的項目中,我右鍵單擊並添加了參考name.dll。 該文件的FileType是Assembly。

所以我創建了一個變量

Friend WithEvents scan As name.Integration.ActiveX.ActiveXObject

有了這個,我可以調用它的方法,並且在這一點上它可以完美地工作。 但是,在我調用一個方法后,它會運行一個過程並開始等待將卡插入掃描儀中。 當將卡插入掃描儀時,應該引發一個事件然后開始掃描。

一旦插入卡,它就會掃描,但是我遇到的問題是我的程序無法捕獲所引發的50個事件中的任何一個。 有誰知道如何或為什么? 我非常需要解決此問題。

如果我正確理解您的意思(並且正在此處閱讀),那么您有來自第三方的ActiveX控件。 您先前的網頁使用了此控件。 現在,您改為引用包含ActiveX控件的dll,因此VS會自動在ActiveX組件周圍創建一個.net包裝器。 那是對的嗎?

如果是,請確認您從正確的庫引用了正確的類型。

  1. 使用對象瀏覽器查看dll的類型。 我想您會發現您有兩個與dll相關聯的庫。 例如,假設您的庫名為“ ThirdParty”。 您可能會看到“ AxThirdParty”以及“ Interop.ThirdParty”。 “互操作”庫包含大多數類。 但是,“ Ax ...”庫是處理事件的關鍵。 聲明事件的對象來自此庫。 如果您沒有看到此庫,則可能需要將控件添加到Windows .net表單中,以使VS為您創建它。

  2. 不要嘗試處理“ Ax ...”庫中隱藏的事件。 請注意,處理隱藏事件不會導致編譯錯誤,但是也不會引發錯誤。 您是否在“ Ax ...”庫中看到要處理的事件? 如果是這樣,是否以淺灰色顯示? 請注意,VS將重命名與標准控制事件沖突的任何互操作事件。 例如,ActiveX控件的click事件被命名為“ ClickEvent”,它是您要處理的ClickEvent事件,而不是Click事件。

請注意,以上內容適用於Windows窗體。 我認為Hans對消息循環是正確的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM