私は、コードを使用してうまく行くことができるOfficeアドイン(VB.netで開発中)にタイマーを設定しました:別のクラスのThisAddInでVB.netタイマーにアクセスする方法
Public Class ThisAddIn
Friend WithEvents Timer1 As System.Timers.Timer
Private Sub ThisAddIn_Startup() Handles Me.Startup
Me.Timer1 = New System.Timers.Timer()
Me.Timer1.Interval = 500
Me.Timer1.Enabled = True
End Sub
Private Sub Timer1_Elapsed(ByVal sender As System.Object, ByVal e As System.Timers.ElapsedEventArgs) Handles Timer1.Elapsed
Me.Timer1.Enabled = False
MsgBox("Code Ran!")
End Sub
ユーザーがアドインのリボンの設定を変更したときにこのタイマーを呼びたいと思いますが、イベントにアクセスできないようです。コードを使用する場合:
Public Class ServerRibbon
Public myCaller As ThisAddIn
private sub respondToClick()
Dim blah As System.Timers.Timer
blah = myCaller.Timer1
blah.Enabled = True
end sub
「オブジェクトのインスタンスがオブジェクトのインスタンスに設定されていません」というエラーが発生します。誰も私はタイマーを設定する方法を説明することはできますか?事前に
おかげで、
こんにちは、ありがとうございました。唯一の問題は、現在、私がタイマーにアクセスしようとすると、「共有されたWithEvents変数のイベントは、非共有メソッドでは処理できません」という新しいエラーメッセージが表示されることです。どのように私はそれを解決する任意のアイデア? – user867358
@ user867358:メソッド定義にも "Shared"キーワードを追加してください: 'Private Shared Sub Timer1_Elapsed ...' – Heinzi
@ user867358:第2の考えで...私の編集を参照してください。 – Heinzi