|
■No91978 (CCCO2 さん) に返信 > s.CheckState = True
ひとまず、コンパイルを通すだけならば、
For Each s As ToolStripItem In CType(sender, ToolStripItem).Owner.Items s.CheckState = True Next
ではなく、
For Each s As ToolStripItem In CType(sender, ToolStripItem).Owner.Items Dim m = TryCast(s, ToolStripMenuItem) If m IsNot Nothing Then m.CheckState = True End If Next
であるとか、
For Each s In CType(sender, ToolStripItem).Owner.Items.OfType(Of ToolStripMenuItem)() s.CheckState = True Next
などと書くことができそうです。
> 'CheckState' は 'ToolStripItem' のメンバーではありません。 > というエラーが出てしまうのですが。
変数 s の中身が ToolStripMenuItem だったとしても、 変数 s のデータ型が ToolStripItem 型であるのならば、 そのようなエラーになるでしょう。
ToolStripMenuItem 型は ToolStripItem 型を継承していますが、 ToolStripItem には CheckState プロパティはありませんよね? ToolStripMenuItem には CheckState プロパティがありますけれども。
エラーの理由としては、下記と同じようなものです。
Dim x As Integer = ListBox1.SelectedIndex 'これは OK Dim o1 As ListControl = ListBox1 Dim y As Integer = o1.SelectedIndex 'これは OK Dim o2 As Control = ListBox1 Dim z As Integer = o2.SelectedIndex 'エラー:'SelectedIndex' は 'Control' のメンバーではありません。
|