オブジェクト型をチェックする


■該当するオブジェクトだけ処理をする

 Private Sub kazMenuCheck(objmen As ToolStripMenuItem)

  For Each objitm As Object In ToolStripDropDownButton.DropDownItems

   If TypeOf objitm Is ToolStripMenuItem Then
    objitm.Checked = objitm.Equals(objmen)
   Else
   End If

  Next

 End Sub
上記のコードは、クリックされたMenuItemを引数で渡し、それにチェックを付け、 それ以外のアイテムはチェックを外すSUBである。 所謂、メニューでRadioButton的な動作をする為のモノであるが・・・ 今回、MenuItemに関するプロパティを改めてじっくりと眺めてみると 「CheckOnClick」なんてプロパティがあり、クリックする度にON/OFFが切り替わる・・・ これまで、コードで書いていた・・・が、今回の動作に該当するものでは無い様だ。

■どんなケースで必要なのか?

本件で該当する箇所は、上記コードの3行目にあたる、 MenuItemコレクションの中にはSeparator等、MenuItem以外のオブジェクトもあり、 コレクションから取得する際、それらも混じってしまう、そんな時、取得したオブジェクトが MenuItemか否か判断し、それに該当するオブジェクトだけを処理する為のモノです。


関連リンク(情報源)

http://blog.livedoor.jp/akf0/archives/51517934.html

TOP ▲