【NCRE】C# WindowForm实现屏幕最顶端拖动
2015-12-27 21:44
483 查看
需求:
窗体置顶,同时显示在任何窗体的最上方,在电脑屏幕上实现左右拖拽。代码:
<span style="font-size:24px;"> private Point mouseOffset; //记录鼠标指针的坐标 private bool isMouseDown = false; //记录鼠标按键是否按下 private bool isBoundary = false; //是否在边界上 private void frmxuanfukuang_MouseDown_1(object sender, MouseEventArgs e) { int xOffset; //int yOffset; if (e.Button == MouseButtons.Left) { xOffset = -e.X - SystemInformation.FrameBorderSize.Width; //yOffset = -e.Y - SystemInformation.CaptionHeight - SystemInformation.FrameBorderSize.Height; mouseOffset = new Point(xOffset, 0); //this.MouseMove += frmxuanfukuang_MouseMove; isBoundary = false; isMouseDown = true; } } private void frmxuanfukuang_MouseMove_1(object sender, MouseEventArgs e) { Rectangle ScreenArea = System.Windows.Forms.Screen.GetWorkingArea(this); int screenWidth = ScreenArea.Width; //屏幕宽度 Point mousePos = Control.MousePosition; mousePos.Offset(mouseOffset.X, 0); if (this.Location.X < 0) { this.Location = new Point(10, this.Location.Y); isMouseDown = false; } if (this.Location.X + this.Width > screenWidth) { this.Location = new Point(screenWidth - 10 - this.Width, this.Location.Y); isMouseDown = false; } if (isMouseDown == true) { mousePos.Y = 0; Location = mousePos; } } private void frmxuanfukuang_MouseUp_1(object sender, MouseEventArgs e) { // 修改鼠标状态isMouseDown的值 // 确保只有鼠标左键按下并移动时,才移动窗体 if (e.Button == MouseButtons.Left) { //this.MouseMove -= frmxuanfukuang_MouseMove; isMouseDown = false; } } //设置窗体显示状态 [DllImport("user32.dll")] private static extern int SetWindowPos(IntPtr hwnd, int hWndInsertAfter, int x, int y, int cx, int cy, int wFlags); </span>
需要绑定上面的事件。
相关文章推荐
- C#学习一之基础认识
- c#通过webbrowser获取网页中的超链接地址
- C#入门之简单计算器的实现。
- 《c#之全局观》
- C# 字段(Field)、属性(Property)、特性(Attribute)
- C#中字符串的处理
- C#委托
- C#多态
- C# webBrowser控件使用心得
- C#WebBrowser控件使用教程与技巧收集--苏飞收集
- C#视频总结
- C#-字符数组(笔记)
- 【C#学习】——接口例子
- C#面向对象设计模式纵横谈——6.Prototype 原型模式(创建型模式)
- C#学习笔记007-字符串练习
- C#中Console.WriteLine()的用法
- C#-循环滚动字幕,timer,从左至右,从右至左,暂停---ShinePans
- 深入理解c#中的const 和readonly的区别滴呀;
- CSharpGL(8)使用3D纹理渲染体数据 (Volume Rendering) 初探
- 使用C#实现读取系统配置文件的代码实例讲解