C# 获取鼠标拖位的Size
时间: 2023-10-19 13:24:56 浏览: 53
你可以使用`Control.MousePosition`属性获取当前鼠标所在的屏幕位置,然后将其转换为控件内部的位置坐标,最后计算出鼠标拖动的距离即可得到控件大小。
以下是一个示例代码:
```csharp
private Point mouseDownLocation;
private void OnMouseDown(object sender, MouseEventArgs e)
{
mouseDownLocation = e.Location;
}
private void OnMouseMove(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
int width = e.X - mouseDownLocation.X;
int height = e.Y - mouseDownLocation.Y;
Size size = new Size(width, height);
// do something with the size
}
}
```
在这个示例中,我们在鼠标按下时记录下当前鼠标所在的位置,然后在鼠标移动时计算出鼠标拖动的距离,将其转换为控件大小并进行相关处理。
相关问题
c#获取鼠标hook
在 C# 中获取鼠标钩子可以使用 System.Windows.Forms 命名空间中的 MouseHooks 类。MouseHooks 类提供了一些静态方法,可以用来设置和取消全局鼠标钩子,以及处理鼠标事件。
以下是一个简单的示例代码,演示如何使用 MouseHooks 类获取鼠标钩子:
```csharp
using System;
using System.Windows.Forms;
class Program
{
static void Main()
{
MouseHooks.OnMouseActivity += MouseHooks_OnMouseActivity;
MouseHooks.Start();
Console.WriteLine("Press any key to stop...");
Console.ReadKey();
MouseHooks.Stop();
}
private static void MouseHooks_OnMouseActivity(object sender, MouseEventArgs e)
{
Console.WriteLine($"Mouse event: {e.Button}, X={e.X}, Y={e.Y}");
}
}
```
在上面的示例中,我们使用 MouseHooks.Start() 方法开始监听鼠标事件,并使用 MouseHooks.Stop() 方法停止监听。当鼠标事件发生时,MouseHooks_OnMouseActivity 方法会被调用,并传递 MouseEventArgs 参数,其中包含了鼠标事件的信息,比如点击的鼠标按钮和鼠标的坐标位置。
c#如何获取鼠标的坐标
在C#中,可以使用`MouseEventArgs`参数中的`X`和`Y`属性来获取鼠标的坐标。下面是一个示例代码:
```csharp
private void Form1_MouseClick(object sender, MouseEventArgs e)
{
int x = e.X;
int y = e.Y;
Console.WriteLine("鼠标坐标:({0}, {1})", x, y);
}
```
在上面的代码中,`Form1`是鼠标事件所在的窗体,`MouseClick`事件会在鼠标单击时被触发。通过检查`MouseEventArgs`参数中的`X`和`Y`属性,可以获取鼠标在窗体中的坐标。在示例代码中,获取了鼠标坐标后,使用`Console.WriteLine`方法将坐标输出到控制台窗口中。
除了`MouseClick`事件,还可以使用其他鼠标事件来获取鼠标坐标,如`MouseMove`事件等。