C#ListViewフック前のイベント -- c# フィールド と winforms フィールド と events フィールド と hook フィールド 関連 問題

C# ListView Hook Pre SizeChanged Event












1
vote

問題

日本語

タイルモードでListViewを持っています。 SizeChangedイベントが発生したときに発射するカスタムメソッドを作成しました。 SizeChangedイベントが発生する前にメソッドが発生するように、これをオーバーライドする方法はありますか?

私はSizeChangingイベントを探していましたが、1つはありません。どうやってこれを行うことができますか?

英語

I have a ListView in tile mode. I have created a custom method to fire when the SizeChanged event is fired. Is there anyway to override this so the method fires before the SizeChanged event is fired?

I tried looking for a SizeChanging event but there isnt one. How can I do this?

</div
           
   
   

回答リスト

3
 
vote
vote
ベストアンサー
 

SizeChanged イベントの発生前にロジックを追加するには、既存の ListView Controlをサブクラス化する必要があります。を作成する必要があります。プロジェクト内の新しいクラスとこのコードをそれに貼り付ける:

<事前> <コード> public class CustomListView : ListView { protected override void OnSizeChanged(System.EventArgs e) { //Fire my custom method before the ListView's size is changed MyCustomMethod(); base.OnSizeChanged(e); } private void MyCustomMethod() { //Insert your custom logic here //... } }

プロジェクトを作成し、標準 ListView の代わりにこの<コード> CustomListView コントロール(または名前を付けたものであれ)を使用します。


> あるいは、コントロール自体からカスタムロジックを切り離したい場合は、カスタムListViewが代わりにイベントを発生させることができます。その後、この新しいイベントを処理できます( SizeChanging <事前> <コード> public class CustomListView : ListView { public event EventHandler SizeChanging; protected override void OnSizeChanged(System.EventArgs e) { //Raise the SizeChanging event before the ListView's size is changed if (SizeChanging != null) { SizeChanging(this, e); } base.OnSizeChanged(e); } }

 

In order to add some logic before the SizeChanged event is fired, you'll need to subclass the existing ListView control. Create a new class in your project and paste this code into it:

public class CustomListView : ListView {      protected override void OnSizeChanged(System.EventArgs e)     {         //Fire my custom method before the ListView's size is changed         MyCustomMethod();          base.OnSizeChanged(e);     }      private void MyCustomMethod()     {         //Insert your custom logic here         //...     }      } 

Then build your project, and use this CustomListView control (or whatever you decide to name it) instead of the standard ListView.


Alternatively, if you want to decouple the custom logic from the control itself, you can have your custom listview raise an event instead. Then, you can handle this new event (we'll call it SizeChanging for consistency) wherever you need in your code. For example, modifying the above example:

public class CustomListView : ListView {      public event EventHandler SizeChanging;      protected override void OnSizeChanged(System.EventArgs e)     {         //Raise the SizeChanging event before the ListView's size is changed         if (SizeChanging != null) {             SizeChanging(this, e);         }          base.OnSizeChanged(e);     }  } 
</div
 
 
         
         

関連する質問

282  PHPアプリケーション用のプラグインを許可するための最良の方法  ( Best way to allow plugins for a php application ) 
PHPで新しいWebアプリケーションを開始し、今回は、プラグインインターフェイスを使用して人々が拡張できるものを作成したいと考えています。 プラグインが特定のイベントに添付できるように、自分のコードに「フック」を書くことにどのようにしてくださいか。 ...

4  Emacsテキストモードのマージンの変更  ( Changing margin for emacs text mode ) 
私が熟練している唯一の方法は、面白いことがなくても私の好みに興味を与えていないことがわかっています。 <事前> <コード> (add-hook 'window-configuration-change-hook (lambda () ...

1  フックフィルタ機能でのWindowsメッセージのフィルタリング  ( Filtering windows messages in a hook filter function ) 
私はWindowsフックを使って別のアプリケーションのメッセージを取得しようとしています。 SetWindowshookexとHookをwh_getmessageフックを設定しました。これはDLLを介して行われます。 My GetMSGPROC関数(ターゲット...

1  C#Windowsエクスプローラフォルダにフックイベントを変更しました  ( C sharp hook into windows explorer folder changed event ) 
私は、運行のために、Windowsエクスプローラフォルダ変更イベントにフックする方法があるかどうかを確認しました。 私がそれを望んでいること:私のエクスプローラを閲覧している場合(Windows 7)フォルダが変更された後に特定のコードセット(キーコンボ送信)...

0  Gerritフックを有効にする方法  ( How to enable gerrit hooks ) 
gerrit 9988777667 を実行しています。 patchset-created を使用しようとしています。ジェリットで。しかし、最初のステップそのもので立ち往生しています。 GERRIT_SITE ディレクトリでGerritが初期化...

0  WordPressアクションフック  ( Wordpress action hook ) 
私は2つのことに問題があります。 2つのプロセスにカスタムロジックを追加する必要があります。 POSTを挿入した直後(DBが更新されたとき)、およびPOSTを更新した直後の右 - アクションフックを使用する必要があると思いますが、この操作に2つの異なるフッ...

1  SVNでCVSスタイルのチェックアウトフックは可能ですか?  ( Are cvs style checkout hooks possible in svn ) 
CVSからSVNに移行しており、わかりやすい場合はSVNにチェックアウトフックがありません。 CVSでは、ポストチェックアウト操作は、モジュールファイル内のモジュールを定義するときに -o オプションを使用して定義されます。この現象はSVNで可能ですか? ...

0  Fake関数では、PIDを見つけます  ( Hook zwterminateprocess in fake function find pid ) 
<事前> <コード> NTSTATUS fakeZwCreateProcess(HANDLE ProcessHandle , NTSTATUS ExitStatus ) { } ProcessHandleは処理するためのハンドル(カーネルハンド...

2  res.view.jsファイルのためのHookをオーバーライドする方法?  ( How override sails js view hook for res view js file ) 
res.view.jsファイルのsails.jsビューフックをオーバーライドできますか? プロジェクトでこのファイルをカスタマイズしてそれを上書きすることはできますか? どのフォルダで、そしてどの名前? フォルダパスの変換名と詳細に標準のマニュアルを見つける...

14  Pre-Commitフックを使用して特定の作者によるGITコミットを停止する  ( Stop a git commit by a specific author using pre commit hook ) 
私の計画は、/ etcの変更を追跡するためにgitを使うことですが、コミュニケーションを行う人にコマンドラインに--authorオプションを追加して、自分自身を作家として指定してください。 だから私は根本的なコミットを根本的なコミットを止めたいと思います。 こ...




© 2022 cndgn.com All Rights Reserved. Q&Aハウス 全著作権所有