問題タブ [eventhandler]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
395 参照

c# - リフレクションを介して Castle ベースの DynamicProxy から EventHandler を取得する (およびサブスクライバーがあれば呼び出す) 方法

INotifyPropertyChanged を実装するクラスの Castle ベースの動的プロキシから EventHandler にアクセスするために、GetField() を使用しようとしています。でも:

myObject.GetType().GetField( "PropertyChanged", BindingFlags.GetField | BindingFlags.NonPublic | BindingFlags.Instance ) は null を返します。

クラスから EventHandler に到達するための特別なトリック/メソッド/クラスの動的プロキシ (およびサブスクライバーを呼び出す) を知っている人はいますか?

0 投票する
1 に答える
1202 参照

c# - ウェブカメラ フレーム イベント ハンドラの停止と再開 C#

プログラムに問題があります。ビデオ ストリームには Aforge、qr コードのデコード部分には ZXing、c# と Windows フォームを使用しています。

初期化関数で、各フレームのイベント ハンドラーを設定しました。

video_newFrame には、アプリケーションに必要なすべてのコードがあります。フレームを取得し、計算し、QR コードを見つけてデコードし、「何か」をチェックして、メッセージ ボックスを表示します。など、フレームごとに。私の問題は次のとおりです。qrコードを表示すると、プログラムがそれを計算し、メッセージボックスが表示されます([OK]ボタンが付いているため、アプリを停止する必要があります)。カメラの視野から QR コードの付いた紙を取り出した場合、[OK] ボタンをクリックすると、コードが続き、次のフレームが空になることを期待しています (つまり、 qrコード付きの紙-次のフレームにメッセージボックスはありません!)。しかし、そうではありません!ほとんどの場合、イベント ハンドラーは既に video_newframe への 1-2-3 呼び出しを開始しており、これは別の 1-2-3 メッセージ ボックスがあることを意味します。コードは次のとおりです。

私はさまざまなことを試しました:最初にイベントハンドラーからサブスクライブを解除し、video_newframe 関数の最後で再度サブスクライブしようとしました:

しかし、結果はありません。

だから私はbool値を試してみました:私はbool値がtrueかどうかをチェックするifステートメントを追加し、そうであれば、それは「bool value = false」を置きます(次のイベント処理を避けるために)、それはものを行い、if値false は返します。次に、DialogResultのifで、「//何かをする」で、「bool = true」をもう一度入れました。私にとっては成功しません。

だから私の問題はまだそこに残っています.私は関数が常に機能することを望んでいます; しかし、どういうわけか、結果 (qr コード) が見つかったときに、メッセージボックスを 1 つだけ表示するのに必要な時間だけ、イベントの発生を停止する必要があります。たとえば、イベント処理などを停止します...

あなたが私を助けてくれることを願っています!前もって感謝します!:)

Bartoszの回答後に編集:

まず、ありがとう!今:私はシングルトンやそれらが何であるかを知らなかったので、知識にも感謝します! 残念ながら、問題はまだ残っています (おそらく、クラスをうまく開発できなかったのは私のせいです)。私はこれを試しました:

次に、2 つのテストを行いました。グローバル変数を作成し、インスタンスを使用します。

そして、初期化メソッドには次のものがあります:

次に、video_newframe 関数を次のように変更しました。

私はそれが正しいと思っていましたが...残念ながらまだ複数のメッセージボックスがあります:(

シングルトンの実装で何か間違ったことをしていますか? またもや…!

0 投票する
1 に答える
95 参照

vb.net - ログインページでエンターキーをリッスンしようとしています

これは私がソファを持っているものです。

「Keycode は system.eventargs のメンバーではありません」と言っています。また、「キーが宣言されていません」と書かれています。

私が望むのは、エンターキーを聞くことだけです。

0 投票する
3 に答える
2472 参照

java - Bukkit でこのイベント コードを使用して、発射物を宣言し、それによるダメージをキャンセルするにはどうすればよいですか

getCause() 条件を使用して if ステートメント内で発射体を宣言する方法を知る必要があります。

次に、プレイヤーが同じギャングに属している場合に、その発射体によるダメージをキャンセルする方法を知る必要があります。

いくつかのサンプルコードと一緒に行う方法の説明を教えてください!

これが私のイベントです。

0 投票する
2 に答える
370 参照

c# - WinSCP .NET アセンブリ: C++/CLI でカスタム イベント ハンドラーを Session.FileTransferred に設定する

申し訳ありませんが、少し具体的な質問があります。はい、これはカスタム イベント ハンドラをイベントに設定することに関連しています。はい、この種の質問はすでに何度も出されているかもしれませんが、ここでは WinSCP の状況に限定する必要があります。

Session.SynchronizeDirectoriesメソッドの例を参照してください:
http://winscp.net/eng/docs/library_session_synchronizedirectories

C# の例を C++/CLI に変換していますが、問題が発生しました。

C# では、次のように設定するのは簡単です。

C++/CLI では、次のことを行います。

しかし、私はこのエラーが発生します:

関数 FileTransferred() はデリゲート型 'void (System::Object ^, System::EventArgs ^)' と一致しません。

に変更してみるFileTransferred(System::Object ^sender, EventArgs ^e)が、 の全身FileTransferred()が無効になってしまう。

0 投票する
0 に答える
802 参照

c# - ContentPage から UserControl のボタンのクリック イベントをトリガーする方法は?

にショッピングカートUserControlがありMasterPageます。次の機能があります。ユーザーがカートにアイテムを追加します。buttonページの「Complete Sale」をクリックすると「 」にUserControlリダイレクトされCustomerInfo.aspx、顧客情報を入力して CustomerInfo.aspx ページにある送信をクリックした後、「 」ページから UserControlの「 Complete Sale」を呼び出します。click eventCustomerinfo.aspx

Customerinfo.aspx.cs

ここでButtonテキストが に変わりますUserControl。しかし、 (ContentPage)からClick eventこれを呼び出すことができません。何か提案はありますか?buttonCustomerInfo.aspx

0 投票する
1 に答える
79 参照

c# - 匿名メソッドを使用した EventHandler はどのように機能しますか?

現在、名前付きパイプから非同期的にデータを受信する Windows フォームがあります。「クロス スレッド操作が無効です: コントロール 'myTextBox' は、それが作成されたスレッド以外のスレッドからアクセスされました」というメッセージが表示されないようにするために、匿名メソッドを使用しています ( http://www.codeproject.com/Articles/28485/を参照)。初心者ガイドからネットへのスレッド化 - Part-of-n ):

私の質問は、「new EventHandler(delegate」行は何をしますか?デリゲートのデリゲートを作成しますか?代わりに名前付きデリゲートを使用して上記の機能をどのように実装するかを説明してもらえますか?(理解を助けるためだけに) ? ティア。

0 投票する
2 に答える
360 参照

c# - C# ThreadPool と ElapsedEventHandler

30 分以内に終了するアプリケーションがあります。アプリケーションのコンポーネントは、スレッドプールを使用して実行されます。

そう

そのため、ロジックは、ThreadPool 内のすべてのコンポーネントを呼び出し、ManualResetEvent クラスを使用して、コンポーネントが終了したことをメイン スレッドに通知することです。

ここで、ElapsedEvent Handler を使用して、コードが一定の時間枠 (たとえば 30 分) で正常に終了することを確認したいと考えています。したがって、30 分後にまだ実行中のスレッドがある場合は、それらを中止します。

だから私の質問はElapsedEventHandlerデリゲートがまったく呼び出されますか? または、メインスレッドはWaitHandle.WaitAll(sectionsCompleted.ToArray())を待ちますか?

一定の時間間隔の後にスレッドプール内のすべてのスレッドを停止するこの機能を実現できる他の方法はありますか?