1

Visual Basic 2010 Express を使用しています。NumericUpDown コントロールをフォームに追加すると、イベントのプロパティ リストに MouseMove イベントが表示されません。私はそれが存在することを知っており、AddHandler を使用してそのハンドラーを作成できますが、表示されません。インテリセンスのリストにも表示されません。

含まれるように Visual Studio を「更新」する方法はありますか?

4

2 に答える 2

1

継承元の UpDownBase コントロールのソース コードから:

[EditorBrowsable(EditorBrowsableState.Never)]
[Browsable(false)]
public new event MouseEventHandler MouseMove

マイクロソフトは公開しないことを決定しました。その理由は、そのコントロールで MouseMove イベントを処理しても意味がないからだと思います。これは、TextBox といくつかのボタンで構成される複合コントロールです。

そのイベントを公開することが重要な場合は、NumericUpDown コントロールから継承して、自分でイベントを公開する必要があります。

public class MyUpDown : NumericUpDown {

  [Browsable(true)]
  [EditorBrowsable(EditorBrowsableState.Always)]
  public new event MouseEventHandler MouseMove {
    add { base.MouseMove += value; }
    remove { base.MouseMove -= value; }
  }
}

そしてVB.Netバージョン:

Public Class MyUpDown
  Inherits NumericUpDown

  <Browsable(True)> _
  <EditorBrowsable(EditorBrowsableState.Always)> _
  Public Shadows Event MouseMove(sender As Object, e As MouseEventArgs)

  Protected Overrides Sub OnMouseMove(e As MouseEventArgs)
    MyBase.OnMouseMove(e)
    RaiseEvent MouseMove(Me, e)
  End Sub
End Class
于 2013-08-28T17:50:07.920 に答える