| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 722 人关注过本帖
标题:C#窗口程序如何移动?
只看楼主 加入收藏
卡巴斯
Rank: 2
等 级:论坛游民
帖 子:50
专家分:31
注 册:2012-12-18
结帖率:100%
收藏
已结贴  问题点数:5 回复次数:7 
C#窗口程序如何移动?
想要自定义窗口的最大化最小化按钮,就自己添了个图片框来表示,将窗口的FormBordelStyle设置为了None,但是这种情况下窗口没有办法移动了,如何才能使窗口自由移动?
搜索更多相关主题的帖子: 移动 如何 
2013-04-13 00:29
Spacer
Rank: 1
等 级:新手上路
帖 子:2
专家分:2
注 册:2013-3-24
收藏
得分:0 
我也很想知道呢,求大神
2013-04-13 01:34
yhlvht
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:36
帖 子:707
专家分:4405
注 册:2011-9-30
收藏
得分:0 
自己写代码让窗口动呀
2013-04-13 05:38
卡巴斯
Rank: 2
等 级:论坛游民
帖 子:50
专家分:31
注 册:2012-12-18
收藏
得分:0 
回复 3楼 yhlvht
这是我写的代码,有更好的写法吗?
程序代码:
 private void panel标题_MouseDown(object sender, MouseEventArgs e)
        {          
            if (e.Button==MouseButtons.Left)
            {
                zb1.x = e.X;
                zb1.y = e.Y;
            }
        }
        private void panel标题_MouseUp(object sender, MouseEventArgs e)
        {
            if (e.Button==MouseButtons.Left)
            {
                zb2.y=e.Y;
                zb2.x=e.X;
            }
        }

        private void panel标题_MouseMove(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left)
            {
                this.Top = this.Top + (zb2.y - zb1.y);
                this.Left = this.Left + (zb2.x - zb1.x);
            }
        }
2013-04-13 13:28
yhlvht
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:36
帖 子:707
专家分:4405
注 册:2011-9-30
收藏
得分:3 
虽然不知道你的zb1,zb2是怎么定义的,但看起来似乎还是有点跟平时的操作不太一样
你应该是从按下鼠标开始,获取第一个点,然后在鼠标移动的过程中,持续获取鼠标的点,让窗体移动,直到鼠标弹起后窗体停止移动
2013-04-13 16:56
lybh24
Rank: 8Rank: 8
等 级:贵宾
威 望:19
帖 子:120
专家分:701
注 册:2012-9-8
收藏
得分:2 
方法1、2、3、4:
http://blog.
http://

新群:273209143
2013-04-13 17:25
卡巴斯
Rank: 2
等 级:论坛游民
帖 子:50
专家分:31
注 册:2012-12-18
收藏
得分:0 
回复 5楼 yhlvht
那按照常规操作是什么样的?有什么不同
2013-04-13 22:29
yhlvht
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:36
帖 子:707
专家分:4405
注 册:2011-9-30
收藏
得分:0 
你的代码是鼠标按下去,取起始点,鼠标弹起来,才取结束点
那你按下去移动鼠标的时候,鼠标还没有弹起来,就没有结束点,结束点默认为0,窗体根本不会像你想像的那样移动
等你鼠标弹起来,有结束点的时候,MouseMove事件又已经不起作用了,窗体也不会动

你平常拖窗口,不是鼠标按下去,然后移动啊,那就是要在你鼠标移动的过程中,能不断的取到结束点,然后改变窗口位置,而不是鼠标放开以后再取一个结束点
你的思路就是6楼里面的第4种啊http://,只是没有写对
2013-04-14 06:15
快速回复:C#窗口程序如何移动?
数据加载中...
 
   



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

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