尝试转换控件时出现空引用异常

时间:2013-01-10 21:27:43

标签: vb.net visual-studio-2008

我正在尝试将菜单项强制转换为富文本框,并且它会抛出一个空引用异常。

代码是

' 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为“Nothing”。

2 个答案:

答案 0 :(得分:1)

menu.container中的

Dim rtb As RichTextBox = TryCast(menu.Container, RichTextBox)可能不是RichTextBox。使用调试器,在该行停止,突出显示“menu.container”,然后按Shift-F9查看它到底是什么。

答案 1 :(得分:0)

它表示“IsNothing”,你的意思是测试什么都没有。

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

应该是:

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