我正在开发一个c#winform应用程序,它将鼠标点击坐标保存在屏幕的任何位置。当鼠标单击任务栏上的最小化图标以恢复表单时,我不想保存坐标。我发生了一个事件,同时调整表单大小,存储窗口状态并检查状态,然后在mouse_click事件中保存坐标。但是鼠标单击首先发生并且没有读取鼠标单击后发生的窗口状态。请帮助我在鼠标点击任务栏后如何使鼠标单击事件读取窗口状态。
感谢。
答案 0 :(得分:0)
根据你的评论,这是我能想到的最好的。这将鼠标X保存在列表中,并与Y保存相同。我没有包含命名空间,因为您可以将其添加到表单代码中。你可以使用CreateSensor();创建传感器,和Analyze();分析X和Y值。
public void CreateSensor(){
Form SensorForm = new Form();
SensorForm.Visible = false;
SensorForm.FormBorderStyle = FormBorderStyle.None;
SensorForm.WindowState = FormWindowState.Maximized;
SensorForm.MouseHover += new MouseEventHandler(SensorForm_Hover);
}
var MouseXList = new List<int>();
var MouseYList = new List<int>();
public void Analyse(){
if(MouseXList.Count != MouseYList.Count){
Console.WriteLine("An error occured when collection the mouse coordinates");
return;
}
else{
for(int i = 0; i < MouseXList.Count; ++i){
Console.WriteLine("X: {0}, Y: {1}\n", MouseXList[i].ToString(), MouseYList[i].ToString());
}
}
}
private void SensorForm_Hover(object sender, MouseEventArgs e){
MouseXList.Add(e.X);
MouseYList.Add(e.Y);
}
如果它不起作用,请告诉我,我会尝试为您修复