syotanaangel
syotanaangel
采纳率0%
2015-04-11 10:02 阅读 1.8k

C#中关于winform事件传递问题

在CE中用c#完成winform程序,遇到了以下问题:
有ABC三个页面,在A页面中执行回车事件会转到B页面,B页面执行回车事件会转到C页面,我现在在A页面中执行回车事件,结果就直接跳转到了C页面,同时还在C页面中也执行了回车事件。
我想可能是事件在页面中直接传递引起的,但是不知道怎么控制!

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

3条回答 默认 最新

  • bdmh bdmh 2015-04-11 10:06

    a触发了b,b接着打开了c,所以你看到的是c

    点赞 评论 复制链接分享
  • devmiao devmiao 2015-04-11 15:15

    贴出你的代码才好帮你

    点赞 评论 复制链接分享
  • syotanaangel syotanaangel 2015-04-13 09:06

    @devmiao
    代码有点多
    是这样的,我的终端是智能设备,在进入login窗口后,点击OK进入到main窗口,而main界面中也有OK的响应事件,如果我在进入login窗口后点击OK,则他不会进入到main窗口,而是直接进入到main的下一级窗口
    我的键盘事件捕捉是这样写的:

    //login窗口的OK事件(keyValue=13)
    private void KeyUp_Click(Object sender, KeyEventArgs e)
    {
    //退出
    if (e.KeyValue == 27)
    {
    if (MessageBox.Show("确定退出程序吗?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.Yes)
    {
    Application.Exit();
    ShowWindow(FindWindow("HHTaskBar", null), SW_SHOW); //显示任务栏
    }
    }
    else if (e.KeyValue == 13)
    {
    //进入到main
    if (flag) new Main().Show();
    else MessageBox.Show("正在加载数据,请稍后……");
    }
    }

                //main窗口的事件
                //按键事件
        private void KeyUp_Click(Object sender, KeyEventArgs e)
        {
            if (this.linkLabel1.Focused || this.linkLabel2.Focused) this.button1.Focus();
            //退出
            if (e.KeyValue == 27)
            {
                this.Close();
            }
            else if (e.KeyValue == 13)
            {
                this.OK_Click(sender, e);
            }
                        ……
    
                        我在main的事件中执行MessageBox.show,结果在login窗口点击OK,跳转到main窗口后,他就直接show了。我是初学者,请问是不是有什么参数控制事件是来自本窗口还是来自上一个窗口?谢谢
    
    点赞 评论 复制链接分享

相关推荐