记事本查找功能怎样实现??

weishaoliu 2009-05-06 11:51:46
怎样实现记事本的查找功能,我在网上搜的时候看到好像有个FindDiaog控件,为什么我找不到啊。
请各位指点指点。
...全文
695 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
pytorch小白 2011-11-05
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 weishaoliu 的回复:]
我设计了一个查找窗体Form2 怎样把主窗体Form1和查找窗体Form2之间联系起来
我的意思是我的主窗体上有个richTextBox1
而我在查找窗体Form2的按钮控件上编程的时候
想输入“richTextBox1”
但是没有智能提示
这不是意味着有错误吗
是不是这两个窗体之间没有联系起来啊
[/Quote]
在form1 里把richTextBox1的属性改为public ,在form2构造函数里,
public Form1 mainForm ;//定义一个form1的类对象
RichTextBox richbox = new RichTextBox(); //定义一个 RichTextBox对象
string richtext = string.Empty; //初始化richtext为空
string searchtext = string.Empty; //初始化查询空searchtxt 为空
int findPlace = 0;

public Form2(Form1 frm)
{
InitializeComponent( );
mainForm = frm ;
richbox = mainForm.richTextBox1 ;
richtext = richbox.Text ;
}
这样你在form2里,通过richbox,可以操作form1里的richTextBox1
pytorch小白 2011-11-05
  • 打赏
  • 举报
回复
9楼方法可行!
wuyq11 2009-05-06
  • 打赏
  • 举报
回复
小弟万元户 2009-05-06
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 mdq001 的回复:]
indexof 就行吧 ,返回位置,再加上搜索字符串的长度,设置textbox.select(start,length)
[/Quote]
mdq001 2009-05-06
  • 打赏
  • 举报
回复
indexof 就行吧 ,返回位置,再加上搜索字符串的长度,设置textbox.select(start,length)
liyoubaidu 2009-05-06
  • 打赏
  • 举报
回复
同意
zgke 2009-05-06
  • 打赏
  • 举报
回复
FindDiaog 这个可能是自己写的把.
deng520159 2009-05-06
  • 打赏
  • 举报
回复
传递参数即可,richtextbox可以满足你的功能的,
weishaoliu 2009-05-06
  • 打赏
  • 举报
回复
我设计了一个查找窗体Form2 怎样把主窗体Form1和查找窗体Form2之间联系起来
我的意思是我的主窗体上有个richTextBox1
而我在查找窗体Form2的按钮控件上编程的时候
想输入“richTextBox1”
但是没有智能提示
这不是意味着有错误吗
是不是这两个窗体之间没有联系起来啊
csz_1987 2009-05-06
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 mdq001 的回复:]
indexof 就行吧 ,返回位置,再加上搜索字符串的长度,设置textbox.select(start,length)
[/Quote]

顶。。。我也正在找着方面资料。。。谢谢。。。
yuanhuiqiao 2009-05-06
  • 打赏
  • 举报
回复
标准控件没FindDiaog
幕夜 2009-05-06
  • 打赏
  • 举报
回复
public void button1_Click(object sender, EventArgs e)
{
if (textSearch.Text != "")//搜索的字符
{
string notmatchcase = textSearch.Text.ToUpper();//用不不区分大小写
string RichTextBoxtext;
Form1 mainForm = (Form1)this.Owner;
{
if (mainForm.textmain.Text.Length > 0)
{
if (checkBox1.Checked == true && radioDown.Checked == true)
{
if ((FindPlace = mainForm.textmain.Text.IndexOf(textSearch.Text, FindPlace)) == -1)
{
MessageBox.Show("没有搜索到!", "记事本", MessageBoxButtons.OK, MessageBoxIcon.Information);
FindPlace = 0; //没有找到,重置查找位置为文本起点}
}
else
{
mainForm.textmain.Select(FindPlace, textSearch.Text.Length);
FindPlace = FindPlace + 1;
mainForm.Activate();//激活SearchForm窗体,给予焦点
mainForm.textmain.Focus();
}
}
else if (checkBox1.Checked == false && radioDown.Checked == true)
{
RichTextBoxtext = mainForm.textmain.Text.ToUpper();
if ((FindPlace = RichTextBoxtext.IndexOf(notmatchcase, FindPlace)) == -1)
{
MessageBox.Show("没有搜索到!","记事本",MessageBoxButtons .OK ,MessageBoxIcon.Information );
FindPlace = mainForm.textmain.Text.Length; //没有找到,重置查找位置为文本起点
}
else
{

mainForm.textmain.Select(FindPlace, textSearch.Text.Length);//选中找到的文本,使其明显
FindPlace = FindPlace + textSearch.Text.Length;
mainForm.Activate();//激活SearchForm窗体,给予焦点
mainForm.textmain.Focus();
}
}
else if (checkBox1.Checked == true && radioUp.Checked == true)
{

if (i == 0)
{
FindPlace = mainForm.textmain.Text.Length;
i++;
}
if ((FindPlace = mainForm.textmain.Text.LastIndexOf(textSearch.Text, FindPlace)) == -1)
{
MessageBox.Show("没有搜索到!", "记事本", MessageBoxButtons.OK, MessageBoxIcon.Information);
FindPlace = 0; //没有找到,重置查找位置为文本起点}
}
else
{
mainForm.textmain.Select(FindPlace, textSearch.Text.Length);
FindPlace = FindPlace-textSearch .Text .Length ;
mainForm.Activate();//激活SearchForm窗体,给予焦点
mainForm.textmain.Focus();
}
}
else
{
RichTextBoxtext = mainForm.textmain.Text.ToUpper();
if (i == 0)
{
FindPlace = mainForm.textmain.Text.Length;
i++;
}
{
if ((FindPlace = RichTextBoxtext.LastIndexOf(notmatchcase, FindPlace)) == -1)
{
MessageBox.Show("没有搜索到!", "记事本", MessageBoxButtons.OK, MessageBoxIcon.Information);
FindPlace = 0; //没有找到,重置查找位置为文本起点}
}
else
{
mainForm.textmain.Select(FindPlace, textSearch.Text.Length);//选中找到的文本,使其明显
FindPlace = FindPlace - textSearch.Text.Length;
mainForm.Activate();
mainForm.textmain.Focus();
}
}
}
}
}
}

}
柳晛 2009-05-06
  • 打赏
  • 举报
回复
public int Find(char[ ] characterSet, int start, int end)
System.Windows.Forms.RichTextBox 的成员

摘要:
在 System.Windows.Forms.RichTextBox 控件的某个文本范围中搜索字符列表的某个字符的第一个实例。

参数:
end: 控件文本中结束搜索的位置。
characterSet: 要搜索的字符数组。
start: 控件文本中开始搜索的位置。

返回值:
控件内找到搜索字符的位置。

异常:
System.ArgumentNullException: characterSet 为空。
System.ArgumentException: start 小于 0 或者大于控件中文本的长度。
calen 2009-05-06
  • 打赏
  • 举报
回复
indexof

柳晛 2009-05-06
  • 打赏
  • 举报
回复
rtxb.Find(被查找字符串)
rtxb.SelectionColor = Color.颜色
运用Qt开发工具来实现一个记事本,用户图形界面操作,通过Qt提供的图形库来设计记事本的管理、应用基本窗口,主要实现打开、新建、保存、另存为、查找、居中、字体、颜色等功能设计,同时在软件内部实现对于这些功能的支持和实现。还有对用户剪切、复制、粘贴、等功能的支持 核心代码讲解 1、打开文件功能 void MainWindow::on_action_2_triggered() { QString filename = QFileDialog::getOpenFileName(this); loadFile(filename); } 打开文件on_action_2_triggered()通过转到槽实现首先定义一个Qstring类型的filename让它获取你文件名,其次寻找它的本地连接。 3、保存文件功能 void MainWindow::on_action_3_triggered() { if(isSaved){ saveFile(curFile); } else{ do_file_SaveAS(); } } 保存文件功能on_action_3_triggered()通过转到槽实现,先判断bool型的isSaved是否是正确的,如果错则保存当前文件,否则执行另存为。 5、关闭功能 void MainWindow::on_action_5_triggered() { if(close){ QMessageBox::information(this,"提示","文件尚未保存,关闭"); }else{ ui->textEdit->close(); } } 关闭功能on_action_5_triggered()先对文本进行判断是否是关闭的,如果是错弹出对话框提示消息文件尚未保存,关闭,否则对文档进行关闭 11、查找功能 //查找 void MainWindow::close_findhangshu() { ui->gridLayoutWidget->close(); } close_findhangshu()对查找对话框进行关闭函数。 void MainWindow::on_action_11_triggered() { QDialog *closefind=new QDialog(this); QDialog *findDlg=new QDialog(this); find_textLineEdit=new QLineEdit(findDlg); QPushButton *find_Bth=new QPushButton(tr("查找下一个"),findDlg); QPushButton *close_find=new QPushButton(tr("关闭"),closefind); ui->gridLayout->addWidget(find_textLineEdit); ui->gridLayout->addWidget(find_Bth); ui->gridLayout->addWidget(close_find); connect(find_Bth,SIGNAL(clicked()),this,SLOT(show_findText())); connect(close_find,SIGNAL(clicked()),this,SLOT(close_findhangshu())); } 查找功能on_action_11_triggered()函数通过转到槽实现下面部分:先定义两个QDialog类型 指针变量*closefind和*findDlg,对它们进行新创建空间, find_textLineEdit=new QLineEdit(findDlg);新建一个空间对QlineEdit它进行传参,将findDlg传入目的是查找在文档中对应的文字,QPushButton *find_Bth=new QPushButton(tr("查找下一个"),findDlg);QPushButton *close_find=new QPushButton(tr("关闭"),closefind);这两个代码作用相同定义两个Qpubutton当点击查找功能弹出对话框时在对话框中实现查找下一个和关闭connect(find_Bth,SIGNAL(clicked()),this,SLOT(show_findText()));connect(close_find,SIGNAL(clicked()),this,SLOT(close_findhangshu()));点击查找下一个按钮时对它进行连接,执行show_findText()函数中的查找操作,如果点击关闭执行上述所说的close_findhangshu()关闭对话框操作 void MainWindow:: show_findText() { QString findText=find_textLineEdit->text(); if(!ui->textEdit->find(findText,QTextDocument::FindBackward)) { QMessageBox::warning(this,tr("查找"),tr("找不到 %1").arg(findText)); } } show_findText()此函数先定义QString类型 findText值,对文本进行扫描,如果文本不能找到找到则提示找不到。 本人也只是一个学生,记得点赞哦!

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧