0

メニュー項目をリッチ テキスト ボックスにキャストしようとすると、null 参照例外がスローされます。

コードは

' ensure above it true and find parent
Dim mnuItem As MenuItem = TryCast(sender, MenuItem)
If mnuItem IsNot Nothing Then
  Dim menu As Menu = TryCast(mnuItem.Parent, Menu)
  If menu IsNot Nothing Then
    Dim rtb As RichTextBox = TryCast(menu.Container, RichTextBox)
    If rtb IsNot Nothing Then
      rtb.Copy()
    End If
  End If
End If

このコードは、rtb.Copy() の行で例外をスローします。これを解決する方法について、誰かが私を正しい方向に導いてくれますか?

編集:コードをステップスルーすると、rbtが「何もない」と表示されます。

4

2 に答える 2

1

menu.containerinDim rtb As RichTextBox = TryCast(menu.Container, RichTextBox)はおそらく RichTextBox ではありません。デバッガーを使用して、その行で停止し、「menu.container」を強調表示して、Shift-F9 を押して実際の内容を確認します。

于 2013-01-10T21:51:01.710 に答える
0

何もないことをテストすることを意味する「IsNothing」と表示されます。

If rtb Is Nothing Then
    rtb.Copy()
End If

次のようにする必要があります。

If rtb IsNot Nothing Then
    rtb.Copy()
End If
于 2013-01-10T21:29:52.287 に答える