C# winform中鼠标按住窗体顶部,窗体中控件一般刷新数据

C# winform中鼠标按住窗体顶部,窗体中控件正常刷新数据
本帖最后由 xdxxzj 于 2014-04-03 15:51:46 编辑
各位,帮个忙吧,现在做了个小程序读取com口数据,然后想鼠标按住窗体顶部边框时,窗体能够正常刷新数据。

目前按住窗体顶部,界面不刷新。多谢!
------解决方案--------------------
引用:
Quote: 引用:

不知道这是不是楼主想要的效果

        private delegate void UpdatelableDelegate(int i);
        private void button1_Click(object sender, EventArgs e)
        {
            Thread a = new Thread(t);
            a.Start();
        }

        public void t()
        {
            UpdatelableDelegate up = new UpdatelableDelegate(updLable);
            for (int i = 0; i <= 100; i++)
            {
                this.Invoke(up, i);
                System.Threading.Thread.Sleep(100);
            }
        }

        private void updLable(int i)
        {
            this.label1.Text = i.ToString();
        }

控件自己添加下


现在是这样,我点击start之后,窗体里面的所有Textbox和listbox里面的数据都是在这个button点击之后开始执行。
然后我鼠标按住上面给出的图的位置(窗体顶部位置),目前是窗体里面的数据停止更新了,一旦松开就获取新数据。我想要的效果是按住鼠标依然能实时获取数据,实际上就是不知道按住这个位置触发啥事件。

在windows中所有的窗体都是这样处理,当你按下鼠标,甚至在关闭按钮上按下鼠标,整个窗体就停止刷新,应该说程序仍然在运行中,只是没有重绘窗体;
------解决方案--------------------
你试过我的程序没,如果试过,建议你可以做如下尝试
1.把你form改的不能再简单,然后检测是否按住标题时有刷新
2.如果有刷新,就逐渐把你的控件加进去,一次一个别太多然后继续查看
3.如果没有刷新,请检查自己的逻辑是否存在问题,因为我事例是可以刷新的

特别提醒:改前请先备份
------解决方案--------------------
读串口你应该线程里读的吧,先抛开你的画面的那么控件不管,把你的按钮时间直接改成我的代码,改下我的代码,不设置lable而设置你画面中的一个textbox,你看看有效果没。