物业管理(智能化房地产管理)//3g.hspt.net.cn/tszy/135.html" target="_blank" class="innerlink">计算机应用技术(4G移动商务方向)g.hspt.net.cn/tszy/134.html" target="_blank" class="innerlink">计算机网络技术(4G移动通信工程方向)> /* 整理者永恆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;
|