【发布时间】:2015-08-21 06:06:05
【问题描述】:
我正在使用 MousePosition 来尝试确定触发 MouseDown 事件后用户移动鼠标的方式。问题是我正在尝试使用 Point 数据类型创建一个起始变量,我只希望这个 Point 填充一次数据,但我将它放在 MouseDown 中,因此我可以使用鼠标参数 eX 和 eY 来确定 MouseDown 事件的位置叫。这是我想的一个例子
public void panel1_MouseDown(object sender, MouseEventArgs e)
{
Point start = new Point(e.X, e.Y);
}
public void panel1_MouseMove(object sender, MouseEventArgs e)
{
if(MousePosition.X > start.X)
{
Console.WriteLine("you have moved right");
}
}
那么我如何只创建一次启动变量,同时仍然可以访问 e 鼠标参数。以及如何访问 panel1_MouseDown 和 panel1_MouseMove 之间的变量?如果您也看到这样做的更好选择,那就太好了!谢谢大家的帮助!
【问题讨论】:
-
您不能让其他函数读取局部变量。拥有一个类成员(以及一个确定鼠标是否按下的布尔值)有什么问题?另外,由于
Point是一个值类型(struct),你不能让它“未初始化”(即它的值不能是null) -
在您的类中将
start设为私有变量,并在MouseDown 方法中丢失类型声明(Point)。
标签: c#