熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

C#給RichTextBox添加查找畫面

2013-11-13 09:50:03  來源: .NET編程 

  /*

  整理者永恆de影

  整理時間//

  內容C#如何給RichTextBox添加查找畫面

  */

  //★★★★★★★★★案例分析:★★★★★★★★★★★★★★★★★★★★★★★★★★★

  //環境C#

  // 我有一個RichTextBox控件裡面有很多的內容我想按下按鈕(ctrl+F)彈出一個查找畫面

  // 在查找畫面中我輸入一個值進行查找可以對父頁面中RichTextBox中的內容進行查詢

  // 對查找出來的內容以特殊的顏色標示出來

  //★★★★★★★★★實現方法:★★★★★★★★★★★★★★★★★★★★★★★★★★★

  //第一步在richTextBox_KeyDown事件中加上一下代碼

  if (eControl && eKeyCode == KeysF)

  {

  //選中所有的RichTextBox的內容

  thisrichTextBoxSelectAll();

  //改變RichTextBox的選中的字體顏色

  thisrichTextBoxSelectionColor = ColorBlack;

  //改變RichTextBox的選中的字體的背景顏色

  thisrichTextBoxSelectionBackColor = ColorMoccasin;

  //選中richTextBox從開始的個字符

  thisrichTextBoxSelect( );

  //把滾動條回滾到焦點所在位置

  thisrichTextBoxScrollToCaret();

  //彈出查找畫面

  frmLookFor frm = new frmLookFor();

  frmShow(this);

  }

  //第二步在查找畫面中

  //變量定義和對象實例化

  public static string strKey = ;

  private int index = ;

  private int k = ;

  strKey = thistextBoxText;

  if (strKey == )

  {

  return;

  }

  //フォーム初期化

  frmRulerChk frm = (frmRulerChk)thisOwner;//為了在子窗體中得到主窗體的東西

  //指定の文字列を検索

  int m = SystemTextRegularExpressionsRegexMatches(((RichTextBox)frmControls[richTextBox])Text strKey SystemTextRegularExpressionsRegexOptionsIgnoreCase)Count;

  if (((RichTextBox)frmControls[richTextBox])Text != )

  {

  if (k <= m)

  {

  while ((index = ((RichTextBox)frmControls[richTextBox])Find(strKey index RichTextBoxFindsNone)) >= )

  {

  //選択した文字列の色

  ((RichTextBox)frmControls[richTextBox])SelectionColor = ColorRed;

  //選択した文字列のBackColor

  ((RichTextBox)frmControls[richTextBox])SelectionBackColor = ColorBlue;

  //フォーカス移動

  ((RichTextBox)frmControls[richTextBox])Focus();

  //文字列選択

  ((RichTextBox)frmControls[richTextBox])Select(index );

  //スクロールバーはフォーカスのところへ移動

  ((RichTextBox)frmControls[richTextBox])ScrollToCaret();

  index++;

  k++;

  if (k == m)

  {

  MessageBoxShow(検索の開始位置に達しました 注意 MessageBoxButtonsOK MessageBoxIconInformation);

  index = ;

  k = ;

  }

  return;

  }

  }

  }

  //★★如果要實現查詢畫面只彈出一個並且最小化的把狀態改為正常狀態:★★★★★★★★

  //步驟一中代碼改為

  //實例化要打開的窗體

  public static frmLookFor frmlook = null;

  if (eControl && eKeyCode == KeysF)

  {

  if (frmRulerChkfrmlook == null)

  {

  thisrichTextBoxSelectAll();

  thisrichTextBoxSelectionColor = ColorBlack;

  thisrichTextBoxSelectionBackColor = ColorMoccasin;

  thisrichTextBoxSelect( );

  thisrichTextBoxScrollToCaret();

  frmRulerChkfrmlook = new frmLookFor();

  frmRulerChkfrmlookShow(this);

  }

  else

  {

  try

  {

  if (frmRulerChkfrmlookWindowState == FormWindowStateMinimized)

  {

  frmRulerChkfrmlookWindowState = FormWindowStateNormal;

  }

  frmRulerChkfrmlookActivate();

  }

  catch

  {

  thisrichTextBoxSelectAll();

  thisrichTextBoxSelectionColor = ColorBlack;

  thisrichTextBoxSelectionBackColor = ColorMoccasin;

  thisrichTextBoxSelect( );

  thisrichTextBoxScrollToCaret();

  frmLookFor frm = new frmLookFor();

  frmShow(this);

  }

  }

  }

  //★★如果想要改運行的窗體在任務欄中不顯示圖標:★★★★★★★★

  //更改屬性ShowInTaskbar = false;

  //注在查找畫面關閉的時候一定要加上這句代碼

  frmRulerChkfrmlook = null;


From:http://tw.wingwit.com/Article/program/net/201311/11700.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.