| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 677 人关注过本帖
标题:记事本查找功能问题
只看楼主 加入收藏
步向巅峰
Rank: 5Rank: 5
来 自:河南
等 级:贵宾
威 望:17
帖 子:110
专家分:371
注 册:2013-4-26
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:3 
记事本查找功能问题
做记事本,卡到查找了,求教!!!
查找功能相关代码及记事本附件,求大神指教,怎么把我的查找窗体关掉还不影响使用
主窗体:
    public partial class FrmNote : Form
    {
        private FrmFind ff;
        public FrmNote()
        {
            InitializeComponent();
            ff = new FrmFind();
            ff.Show(this);
            //ff.Hide();     --查找窗体不能关闭,一旦关闭,再查找的时候就出现“未将对象引用设置到对象的实例”异常
        }
        private void 查找ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            ff = new FrmFind();
            ff.Show();
        }
         //查找方法
        public int currentPos=-1;//初始化光标当前位置
        int findPos;//光标开始查找的位置
        public void Search(string s)
        {
            
            //获取光标开始查找的位置
            if (currentPos == -1)
            {
                findPos = tbContent.SelectionStart;
            }
            else
            {
                //获得当前光标位置,并设置新的光标位置,用于查找下一处
                findPos = currentPos + s.Length;
            }
            //判断是否查找到
            currentPos = tbContent.Text.IndexOf(s,findPos);//从findPos处开始查找文本s,查找到则返回索引位置value,否则返回-1,value的索引是选中文本开头
            
            if (currentPos == -1)
            {
                MessageBox.Show("找不到 “" + s+"”", "记事本", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            else
            {
                //选中查找文本
                tbContent.Select(currentPos, s.Length);
            }

        }
    }
查找窗体:
   public partial class FrmFind : Form
    {
        private FrmNote fn;
        public FrmFind()//构造函数
        {
            InitializeComponent();

        }
        private void FrmFind_Load(object sender, EventArgs e)
        {
            //使标题栏图标不显示
            this.ShowIcon = false;
            this.Activate();

            this.btnNext.Enabled = false;
        }

        public string str = "";
        private void btnNext_Click(object sender, EventArgs e)
        {
            //获得FrmNote窗体的引用
            fn = this.Owner as FrmNote;
            str = fn.tbContent.Text;
            fn.Search(tbFind.Text);
            
        }
    }
主窗体设计器:
 public System.Windows.Forms.TextBox tbContent;
记事本
搜索更多相关主题的帖子: private 记事本 public 影响 
2014-05-10 17:42
步向巅峰
Rank: 5Rank: 5
来 自:河南
等 级:贵宾
威 望:17
帖 子:110
专家分:371
注 册:2013-4-26
收藏
得分:0 
哎,我咋看不到我发的附件呢?
记事本.zip (91.16 KB)
2014-05-10 17:44
yhlvht
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:36
帖 子:707
专家分:4405
注 册:2011-9-30
收藏
得分:20 
主窗体这3句是木有用滴
public FrmNote()
{
    InitializeComponent();
    //ff = new FrmFind();
    //ff.Show(this);
    //ff.Hide();
}
主窗体查找菜单的click事件,把this传过去
private void 查找ToolStripMenuItem_Click(object sender, EventArgs e)
{
    ff = new FrmFind(this);
    ff.Show();
}
查找窗体的构造函数,将传过来的参数赋值到全局变量fn
public FrmFind(FrmNote fn)//构造函数
{
    InitializeComponent();
    this.fn = fn;
}
btnNext的click事件中,fn就可以直接使用了
private void btnNext_Click(object sender, EventArgs e)
{
    //获得FrmNote窗体的引用
    //fn = this.Owner as FrmNote;
    str = fn.tbContent.Text;
    fn.Search(tbFind.Text);         
}
2014-05-10 22:56
步向巅峰
Rank: 5Rank: 5
来 自:河南
等 级:贵宾
威 望:17
帖 子:110
专家分:371
注 册:2013-4-26
收藏
得分:0 
谢谢了,讲的很明白,我试了试,确实如此
2014-05-11 11:13
快速回复:记事本查找功能问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017537 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved