c#事件,在窗体内按住鼠标拖动窗体的代码

代码:private void Login_MouseDown(object sender, MouseEventArgs e)
{
start = Control.MousePosition;
locat = this.Location;
}

private void Login_MouseMove(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
Point temp = Control.MousePosition;

this.Location = new Point(locat.X + temp.X - start.Y, locat.X + temp.Y - start.Y);
}
}
这个在拖动的时候最开始窗体总会跳一下然后才正常,怎么改代码??

独做一个form,
不要显示form边框,
form背景用透明的图片,
然后在form的鼠标按下的事件和松开事件里添加拖动操作,
在program.cs里将两个form设置成静态窗口,互相可以共享数据了追问

我就一个窗体。我要的功能是在那个窗体里面能用鼠标拖动窗体,,我上面的代码哪里有问题么?

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-03-27
this.Location = new Point(locat.X + temp.X - start.Y, locat.X + temp.Y - start.Y);
坐标减错了啊!!!!
应该是this.Location = new Point(locat.X + temp.X - start.X, locat.Y+ temp.Y - start.Y);本回答被提问者采纳

C#怎么实现窗体在鼠标左键按住拖动
Point mouse_offset;private void Form2_MouseDown(object sender, MouseEventArgs e){ mouse_offset = new Point(-e.X, -e.Y);} private void Form2_MouseMove(object sender, MouseEventArgs e){ if (e.Button == MouseButtons.Left){ Point mousePos = Control.MousePosition;mousePos.Offset(mou...

C#中实现窗口可拖动动的代码~!
\/\/按住鼠标左键拖拽的时候改变控件的位置 private void ControlArtiAdd_MouseMove(object sender, MouseEventArgs e){ if (e.Button == MouseButtons.Left){ Panel ParentControl = (Panel)this.Parent;int horizontalScroll = ParentControl.HorizontalScroll.Value;(sender as ControlArtiAdd).Left += e...

C#Winform无边框窗体鼠标拖动怎么实现
在无边框窗体的代码中加入下面的protected override void WndProc(ref Message m)方法便可。具体代码如下:using System;using System.Windows.Forms;namespace WindowsFormsApplication1 { public partial class Form1 : Form { public Form1(){ InitializeComponent();} region 移动窗体 \/\/\/ \/\/\/ 重写...

谁会用C#编写可以在windows环境下鼠标按住就可以连击的代码?
下面是窗体的二个事件,和鼠标按住时的方法,很简单 bool isMoseDown = true;private void Test(){ int i = 0;while (isMoseDown){ this.BeginInvoke(new MethodInvoker(delegate { textBox1.Text = (i++).ToString();}));Thread.Sleep(200);} } private void Form1_MouseDown(object sender...

用C#编写一个程序,按钮对象跟随鼠标指针在窗体内移动。当用户单击窗体时...
很简单,在窗体Form1上设置一个按钮button1,然后找到窗体的属性中的事件页面,找到鼠标事件中的 MouseMove 双击一下就会自动添加一个事件代码方法 private void Form1_MouseMove(object sender, MouseEventArgs e){ button1.Top = e.Y + 1;\/\/这个代码设置按钮的左上角纵坐标比鼠标的位置多一个点,...

c# 如何按住一个控件时 让他随鼠标的移动方向移动
你可以就利用控件的这三个事件来实现鼠标拖动某个控件.如:1.新建一窗体.2.在窗体画一个button控件.3.在button控件的MouseMove,MouseDown,MouseUp三事件方法里分别写下这样的代码:bool _isPressed=false;Point _position=new Point(0,0);private void button_MouseMove(object sender,EventArgs e){ if(...

C#中,在一个按钮上按下鼠标左键然后移动,整个窗体跟着光标移动,如何...
你这个不是拖动窗口吗?主要是用到按钮的 MouseDown MouseUp MouseMove MouseDown 是标志移动开始 MouseUp是 标志移动结束 MouseMove 是获取当前屏幕上的点,然后把窗体的 Location更改,不过有一个前提就是已经进入移动状态。代码给你写了也没有用。因为你复制进去是用不了的。而且另外的网友已经回答了代码...

C#如何通过鼠标拖动控件的滚动条。。我现在有很多图片放在richtextbox...
this.VerticalScroll.Value + e.Delta);\/\/控制纵向滚动条滚动 }\/\/注意:代码中this是当前窗体,也就是给当前窗体加滚轮事件,如果你的是richtextebox控件,就给它加事件,还有滚轮事件触发条件必须是你的光标在richtextebox控件上才行.如果你光标在浏览器上或其他文本框上那肯定是不好使的....

C#中MouseMove的使用方法
c#的winform里的MouseMove事件很特殊,当鼠标在一个组件上移动的时候会收到MouseMove事件,但是另一种情况:当在组件上按住左键拖拽移动(组件先收到MouseDown事件)的时候,鼠标在整个窗口内移动时,这个组件都会收到MouseMove事件,而这个组件的MouseUp事件的就收范围也会变为窗口,也就是说,按住左键的情况是特殊的,随后的...

求C#代码:当鼠标滑过按钮时,弹出一个窗口
这个可以,在事件中 .用这个MouseMove这个鼠标移动事件,把鼠标移到控件就发生。!代码如下:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;namespace WindowsApplication2 { public partial ...

相似回答