C#编程。 窗体上有一个按钮,通过鼠标在窗体上不同的地方拖动,按钮跟着鼠标拖动…… 请问在Mous
C#编程。窗体上有一个按钮,通过鼠标在窗体上不同的地方拖动,按钮跟着鼠标拖动……请问在MouseDown事件中要怎么写才能实现?我写Button1.Location=Lo...
C#编程。 窗体上有一个按钮,通过鼠标在窗体上不同的地方拖动,按钮跟着鼠标拖动…… 请问在MouseDown事件中要怎么写才能实现? 我写Button1.Location=LocantionChance;结果编译失败。 求大神解救啊!!!
展开
展开全部
你需要把鼠标的位置拿过来,代码是这样的。
在窗体中定义两个变量
Point mouseOff;//鼠标移动位置变量
bool leftFlag;//标签是否为左键
窗体的三个鼠标事件
this.MouseMove += new MouseEventHandler(MainWindow_MouseMove);
this.MouseDown += new MouseEventHandler(MainWindow_MouseDown);
this.MouseUp += new MouseEventHandler(LoginForm_MouseUp);
事件代码:
private void MainWindow_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
mouseOff = new Point(-e.X, -e.Y); //得到变量的值
leftFlag = true; //点击左键按下时标注为true;
}
}
private void MainWindow_MouseMove(object sender, MouseEventArgs e)
{
if (leftFlag)
{
Point mouseSet = Control.MousePosition;
mouseSet.Offset(mouseOff.X, mouseOff.Y); //设置移动后的位置
Location = mouseSet;
}
}
private void LoginForm_MouseUp(object sender, MouseEventArgs e)
{
if (leftFlag)
{
leftFlag = false;//释放鼠标后标注为false;
}
}
追问
我照这样写了……编译出错是什么情况?
展开全部
没看示例,又提了一个问题?
public partial class Form1 : Form
{
Point p = new Point();
public Form1()
{
InitializeComponent();
}
private void button1_MouseDown(object sender, MouseEventArgs e)
{
p = e.Location;
}
private void button1_MouseMove(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
Button b = sender as Button;
b.Location = new Point(b.Location.X + (e.X - p.X), b.Location.Y + (e.Y - p.Y));
}
}
}
手机上网,看不了示例?这个可以了吧?希望对你有帮助
public partial class Form1 : Form
{
Point p = new Point();
public Form1()
{
InitializeComponent();
}
private void button1_MouseDown(object sender, MouseEventArgs e)
{
p = e.Location;
}
private void button1_MouseMove(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
Button b = sender as Button;
b.Location = new Point(b.Location.X + (e.X - p.X), b.Location.Y + (e.Y - p.Y));
}
}
}
手机上网,看不了示例?这个可以了吧?希望对你有帮助
更多追问追答
追问
没看到附件。。。
照这个代码运行后按钮不动丫,多点几下窗体程序就出错了T_T
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-01-29
展开全部
button1.Location = new Point(MousePosition.X, MousePosition.Y);
追问
这个代码点击鼠标,按钮成随机的了,无法拖动
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询