如何将窗口窗体按钮拖动到特定点,但仅在选中新点后';s的位置
本文关键字:新点 位置 窗体 按钮 窗口 拖动 | 更新日期: 2023-09-27 18:29:34
我希望允许用户根据用户拖动按钮的方向将按钮向右(+X)或向左(-X)拖动到一个点。我是windows窗体的新手,如果能参观一下将不胜感激。(在我的示例中,我将新的位置增量硬编码了10个像素,但我希望用户能够将按钮拖动到他想要的位置)。这是我当前的代码:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
Load +=Form1_Load;
}
private void Form1_Load(object sender, EventArgs e)
{
}
bool isDragged = false;
private void button1_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
isDragged = true;
}
else
{
isDragged = false;
}
}
private void button1_MouseMove(object sender, MouseEventArgs e)
{
if (isDragged)
{
button1.Location = new Point(button1.Location.X + 10, button1.Location.Y);
}
isDragged = false;
}
}
试试这个:
private Point mouseDown, buttonLocation;
private bool isDragged = false;
private void button1_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
isDragged = true;
mouseDown = Cursor.Position;
buttonLocation = button1.Location;
}
}
private void button1_MouseMove(object sender, MouseEventArgs e)
{
if (isDragged)
{
button1.Location = new Point(buttonLocation.X + (Cursor.Position.X - mouseDown.X), button1.Location.Y);
}
}
private void button1_MouseUp(object sender, MouseEventArgs e)
{
isDragged = false;
}