問題タブ [events]
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.
java - イベントリスナーとしてJS関数をアプレットに渡す
javascript から Java アプレットに関数/コールバックを渡すことは可能ですか?
たとえば、ボタンを押すと、渡されたjsコールバックを呼び出すアプレットがあります
.net - ASP .Net サーバー コントロール イベントの順序
ASP .Net サーバー コントロールのイベントはどれですか?また、その順序は含まれているページのイベントとどのように関連していますか?
具体的な問題は、含まれているページのPage_Loadイベントの前に発生するサーバー コントロール内のイベントを探していることです。
c# - .NET EventHandlers - ジェネリックかノーか?
C# プロジェクトを深く掘り下げるたびに、本当に 1 つの項目を渡す必要があるだけのイベントが大量に発生します。EventHandler
私は/の練習に固執しEventArgs
ますが、私がやりたいのは次のようなものです:
後で、私は私のものを持つことができます
EventArgs
ただし、.NET の標準では、イベントの種類ごとに新しいデリゲートとサブクラスを作成するようです。私の一般的なアプローチに何か問題がありますか?
編集: この投稿の理由は、これを新しいプロジェクトで再作成したばかりで、問題がないことを確認したかったからです。実は、投稿したとおりに作り直していました。ジェネリックがあることがわかった
EventHandler<TEventArgs>
ので、ジェネリックデリゲートを作成する必要はありませんが、ジェネリックEventArgs<T>
クラスはまだ必要TEventArgs: EventArgs
です.
別の編集:組み込みソリューションの(私にとって)1つの欠点は、余分な冗長性です:
対。
ただし、システム名前空間はデフォルトでインポートされるため、クライアントがイベントに登録するのは面倒な場合があります。そのため、Resharper のような派手なツールを使用しても、手動で名前空間を探す必要があります...誰にでもそれに関連するアイデアがあります?
apache-flex - フレックス:特定のイベントを処理できないのはなぜですか?
場合によっては、コンポーネントにイベントを受信させることができないようです。
[編集]
明確にするために、サンプルコードはデモンストレーション用です。私が本当に尋ねていたのは、リスナーを追加できる中央の場所があり、そこに任意のオブジェクトとの間でイベントを確実にディスパッチできるかどうかでした。
最終的に、parentApplicationを使用して、処理する必要のあるイベントをディスパッチおよび受信しました。
[/編集]
2つのコンポーネントの親が異なる場合、または以下の例のように、1つがポップアップの場合、イベントがリスナーに到達しないように見えます(機能しないディスパッチについては、メソッド「popUp」を参照してください)。
回避策は考えられますが、中央のイベントバスがあるはずです...
私は何かが足りないのですか?
c# - イベントを使用してメソッドを実行するにはどうすればよいですか?
したがって、私のドキュメントでは次のように述べています。
公開イベント TreeViewPlusNodeCheckedEventHandler NodeChecked()
このイベントを使用して、ツリーでノードのチェックボックスがオンになっているときにメソッドを実行することができます。
では、ノードがチェックされたときに実行されるコード ビハインド ファイルにメソッドを追加するにはどうすればよいでしょうか? 私が実行したい方法は次のとおりです。
vs 2008 c# .net 3.5
actionscript-3 - Flash: 1 つのイベント リスナーで同じタイプのすべてのイベントをリッスンする
それは生死の問題ではありませんが、これが可能かどうか疑問に思います:
1 つのタイプのカスタム イベント (FormEvent) からいくつかのイベントを取得しました。これらすべてのイベントをリッスンし、イベント タイプに従って処理する FormListener を取得しました。一度に 1 つの eventListener を追加する代わりに、一度にすべてのイベントを追加したいと考えています。
したがって、次のようになります。
しかし、すべてのイベントを一度に1つずつ追加する代わりに、次のようなことをしたいと思います
このようなことが可能かどうか、私はそれが大好きです。私はたくさんのイベントを扱っています:)
apache-flex - Flex - 囲まれたコンポーネントがクリックされたときのコンテナのクリック イベントを回避する
Canvas を使用して他のいくつかのコンポーネントを含む Flex アプリケーションがあります。そのキャンバスには、システムを介して特定のフローを呼び出すために使用されるボタンがあります。キャンバスの他の場所をクリックすると、詳細ペインが表示され、このコントロールによって表されるレコードに関する詳細情報が表示されます。
私が抱えている問題は、ユーザーがボタンをクリックするたびにボタンがキャンバス内にあるため、ボタンとキャンバスの両方でクリックイベントが発生することです。ユーザーが別のコンポーネントで覆われた領域をクリックした場合に、Canvas オブジェクトでクリック イベントが発生しないようにする方法はありますか?
問題を実証するために、簡単な小さなテスト アプリケーションを作成しました。
ボタンをクリックすると、マウスが 1 回だけクリックされたにもかかわらず、テキスト ボックスに "Button Clicked" と "Canvas Clicked" の 2 つのエントリが表示されます。
ボタンをクリックすると「ボタンクリック」エントリのみが作成されるように、2番目のエントリが作成されないようにする方法を見つけたいと思いますが、キャンバスの他の場所をクリックすると「キャンバスクリック」エントリは引き続き表示されます。
python - Tkinter でバインドされたイベント ハンドラーを取得する
メソッドを Tkinter 要素のイベントにバインドした後、メソッドを元に戻す方法はありますか?
c# - ディスパッチ中に C# でイベントを登録すると、そのディスパッチ中に再度呼び出されないことが保証されますか?
C# では、同じイベントのディスパッチの途中で、イベントのメソッドを登録したくなることがあります。たとえば、同じイベントの連続するディスパッチに基づいて状態を遷移させるクラスがある場合、最初の状態のハンドラーを登録解除し、2 番目のハンドラーを登録することができます。ただし、次にイベントが発生するまで、2 番目のハンドラーをディスパッチしたくありません。
良いニュースは、C# の Microsoft 実装がまさにこのように動作するように見えることです。イベント登録構文の砂糖は、System.Delegate.Combine への呼び出しに置き換えられます。これは、現在の呼び出しリストと新しいメソッドを別のリストに連結し、それをイベント プロパティに割り当てるだけです。これにより、まさに私が望む動作が得られます。
だから、私の質問は: これは言語標準によって保証された動作ですか? 私は自分の C# コードを他のプラットフォームで mono の下で実行できるようにしたいと考えており、一般的に、その実装に基づいて言語標準について推測していないことを確認したいと考えています。
MSDN で決定的な情報を見つけることができませんでした。
私が話していることの具体的な例が必要な場合は、ここに例を示します。
少なくとも Windows では、出力は次のようになります。
.net - イベントを呼び出す適切な場所は?
開始したばかりの Windows フォーム プロジェクトがあります。フォームには、製品をロードしているリストボックスがあります。誰かが製品をダブルクリックすると、ProductChanged イベントが発生するようにします。私のプロジェクトの他のものは、このイベントをサブスクライブし、製品が変更されたときに GUI の他の部分などを更新します。
私の質問は、イベントはどこにあるべきで、誰がそれを起こすべきですか? イベントをフォーム上に配置し、リストボックスのダブルクリック ハンドラーによって発生させる必要がありますか? または、製品クラスのイベントがあり、リストボックスがこのクラスのメソッドを呼び出して、製品が変更されたことを知らせる場所に設定する必要があります。そして、Product クラスはイベントを発生させますか? それとも別の方法で行うべきですか?