C#中实现拖动无边框窗体Form

拖动无边框窗体Form至桌面任何位置

首先建一个Windows应用程序

将Form1的 FormBorderStyle属性设置为Noe

 

创建控件panel1放在标题栏位置

 

代码

        Point mouseOff;//鼠标移动位置变量
         bool leftFlag;//标签是否为左键

        private void panel1_MouseDown(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left)
            {
                mouseOff = new Point(-e.X, -e.Y); //得到变量的值
                leftFlag = true;                  //点击左键按下时标注为true;
            }
        }

        private void panel1_MouseMove(object sender, MouseEventArgs e)
        {
            if (leftFlag)
            {
                Point mouseSet = Control.MousePosition;
                mouseSet.Offset(mouseOff.X, mouseOff.Y);  //设置移动后的位置
                Location = mouseSet;
            }
        }

        private void panel1_MouseUp(object sender, MouseEventArgs e)
        {
            if (leftFlag)
            {
                leftFlag = false;//释放鼠标后标注为false;
            }
        }

 

 

就可以实现了

时间: 2024-08-01 22:46:55

C#中实现拖动无边框窗体Form的相关文章

c#中无边框窗体改变大小?

问题描述 我是参考这里http://www.microsoft.com/china/community/Column/60.mspx我做的也是一个无边框的窗体现在已经实现了向右拉伸功能.方法(获得当前的鼠标横坐标(mousemove)FORM.WITCH=鼠标横坐标-location.X)如何实现向左拉伸?我思考的方法(FORM.WITCH=this.Right-当前鼠标横坐标,但是表现出来时窗体左边框没动右边框在增加缩小)不知道我是不是写错了.或者要实现无边框窗体的伸缩大小有没有另外的好方法?

无边框窗体,窗体鼠标事件被禁止,求解决办法。

问题描述 protectedoverridevoidWndProc(refMessagem){constintWM_NCHITTEST=0x84;constintHTCLIENT=0x01;constintHTCAPTION=0x02;constintWM_SYSCOMMAND=0x112;constintSC_MAXMIZE=0xF030;constintWM_NCLBUTTONDBLCLK=0xA3;switch(m.Msg){case0x4e:case0xd:case0xe:case0x1

WPF无边框窗体,点击任务栏无法最小化

问题描述 WPF设置成无边框窗体后,点击任务栏无法最小化.在Winform中可以用以下方式解决这个问题.[DllImport("user32.dll",EntryPoint="GetWindowLong",CharSet=CharSet.Auto)]publicstaticexternintGetWindowLong(HandleRefhWnd,intnIndex);[DllImport("user32.dll",EntryPoint="

vb无边框窗体-[VB 6.0]无边框窗体用[JS]实现左键+拖动=改变窗体大小

问题描述 [VB 6.0]无边框窗体用[JS]实现左键+拖动=改变窗体大小 设想:Form1(绝对的无边框,不是有边框去掉标题栏)中只有webbrowser一个控件,webbrowser与Form1大小一致. 求助:Form1会被webbrowser控件完全覆盖,Form1的鼠标事件不会因鼠标操作而触发,而webbrowser控件本身没有鼠标事件[有没有不讨论,就当没有]这种情况下如何实现左键+拖动=改变窗口大小,可否在webbrowser-document中建一与Form1同样大小的DIV,用

winform 无边框 窗体基本功能 拖动和系统右键菜单冲突

问题描述 usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Windows.Forms;usingSystem.Runtime.InteropServices;usingRightMenuItem;namespaceClientFrom{pu

winform中如何处理无边框窗体的缩放和托动

在winform经常用到无边框的窗体,原因就是想使自己的程序界面完全的自定义,网上也有过不少的相关资料 今天我发了一下的午的时间整理了一下.觉得还不错,贴出来看看. 为了提高托动的缩放的效率,减少系统开销,一般软件都用支持只显示窗体四周的虚线的方法,这也是windows默认的设置 首先看下其它软件的窗体托动,先说QQ2009吧,QQ2009的主窗体在托动时如果在屏幕上来回快速托动,等停下来时你会发现,很有可能鼠标现在在窗体的位置已经不是按下的位置了.再说酷我音乐盒.鼠标在托动或缩放窗体时,如果鼠

Java中JFrame实现无边框无标题方法_java

很多时候我们弄一个界面,不想要默认的边框,或者不想要右上角的那个最大化按钮,比如qq面板上面就没有最大化按钮. 但是我查了很多资料都说不能直接去掉最大化按钮,必须把整个边框和标题都去掉,然后自己画.. 这个测试代码也很简单: <1>JFrame无边框无标题 <2>添加背景图片(添加背景图片有很多方法,大致上都是图片在JLabel里面,JLabel在Panel上面,Panel上面还有一个Panel放其它控件) <3>创建ImageIcon,直接用new ImageIcon

vb.net如何在win7下不开启阴影效果,如何实现无边框窗体阴影

问题描述 vb.net如何在win7下不开启阴影效果,如何实现无边框阴影,求高手给代码,谢谢各位了 解决方案 解决方案二:WPF整

VB.NET 拖动无边框的窗体

******************************************Private oOriginalRegion As Region = Nothing' 用于窗体移动Private bFormDragging As Boolean = FalsePrivate oPointClicked As Point '****************************************** Private Sub Form1_MouseDown(ByVal sender A