首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

实现记事本查找出现的有关问题

2012-06-11 
实现记事本查找出现的问题获得主窗体的引用Dim ff As New FrmMain()ff DirectCast(Me.Owner, FrmMain)D

实现记事本查找出现的问题
'获得主窗体的引用
  Dim ff As New FrmMain()
  ff = DirectCast(Me.Owner, FrmMain)
  Dim findText As Integer = 0
  Try
  '向下查找
  If RadioButton1.Checked Then
  findText = ff.RichTextBox1.SelectionStart + ff.RichTextBox1.SelectionLength
  '从光标处开始查找
  If (InlineAssignHelper(findText, ff.RichTextBox1.Text.IndexOf(TextBox1.Text, findText))) = -1 Then
  MessageBox.Show("找不到""" & Convert.ToString(Me.TextBox1.Text) & """", "myNotepad", MessageBoxButtons.OK, MessageBoxIcon.Information)
  '搜索到达终点
  findText = ff.RichTextBox1.Text.Length
  Else
  '选中找到的文本,使其明显
  ff.RichTextBox1.[Select](findText, TextBox1.Text.Length)
  ff.RichTextBox1.Focus()
  findText += TextBox1.Text.Length
  End If

  '向上查找
  ElseIf RadioButton2.Checked Then
  findText = ff.RichTextBox1.SelectionStart + ff.RichTextBox1.SelectionLength
  '从光标处开始查找
  If findText >= 0 AndAlso findText <= ff.RichTextBox1.Text.Length Then
  If (InlineAssignHelper(findText, ff.RichTextBox1.Text.LastIndexOf(TextBox1.Text, findText))) = -1 Then
  MessageBox.Show("找不到""" & Convert.ToString(Me.TextBox1.Text) & """", "myNotepad", MessageBoxButtons.OK, MessageBoxIcon.Information)
  Else
  '选中找到的文本,使其明显
  ff.RichTextBox1.[Select](findText, TextBox1.Text.Length)
  ff.RichTextBox1.Focus()
  findText += TextBox1.Text.Length
  End If
  Else
  MessageBox.Show("找不到""" & Convert.ToString(Me.TextBox1.Text) & """", "myNotepad", MessageBoxButtons.OK, MessageBoxIcon.Information)
  End If
  End If
  Catch ex As Exception
  MessageBox.Show(ex.Message)
  End Try
  End Sub
  Private Shared Function InlineAssignHelper(Of T)(ByRef target As T, ByVal value As T) As T
  target = value
  Return value
  End Function




每次代码执行到 findText = ff.RichTextBox1.SelectionStart + ff.RichTextBox1.SelectionLength 时,就直接跳到MessageBox.Show(ex.Message)这个地方,然后提示未将对象引用设置到对象的实例。怎么回事?

[解决办法]
关于ff为什么要引用转换的me.owner而不是直接使用主窗体比较疑惑,也许楼主另有用途,不过出错原因可能正在此处。

热点排行