0

TabPages 内で PictureBoxes を使用する MDI (タブ付き) アプリケーションを作成しました。ピクチャボックスはタブページよりも大きい場合があるため、スクロールバーが表示されます。これは、Windows フォームを使用して C# で記述されています。

タブページ内では、MouseWheel イベントでマウス ホイール イベントをキャプチャして処理します (これを使用して、ピクチャ ボックスに描画するオブジェクトを回転させます)。

しかし、スクロールバーがある場合、マウスホイールを回転させると、オブジェクトが回転しますが、タブページも下にスクロールします。

タブページがマウスホイールイベントを処理しないようにして、スクロールダウンしないようにするにはどうすればよいですか? ユーザーがスクロールバーをクリックしてドラッグした場合にのみスクロール可能にしたい。

4

1 に答える 1

1

メソッドをサブクラスTabPage化してオーバーライドし、メッセージWndProc()を無視します。WM_MOUSEWHEEL

public class MyTabPage : TabPage
{
  private const int WM_MOUSEWHEEL = 0x20a;

  protected override void WndProc(ref Message m)
  {
    // ignore WM_MOUSEWHEEL events
    if (m.Msg == WM_MOUSEWHEEL)
    {
      return;
    }

    base.WndProc(ref m);
  }
}

次にMyTabPage、標準の代わりにサブクラスを使用しますTabPage

于 2009-08-29T10:43:32.300 に答える