Teststack.White 拖放问题
Teststack.White Drag and Drop Problems
我在将一个控件拖到另一个控件时遇到问题。我已经成功地能够 select 两个控件,但是当我尝试使用时:
Mouse.Instance.Location = dragControl.ClickablePoint;
Mouse.LeftDown();
Mouse.Instance.Location = dropControl.ClickablePoint;
Mouse.LeftUp();
没有拖动,鼠标移动。但是控件停留在初始位置。
我也试过使用:
Mouse.Instance.DragAndDrop(dragItem, dragItem.ClickablePoint, dropItem, dropItem.ClickablePoint);
仍然没有运气。
我正在做一些实验和一点并让它工作,但我已经忘记了我之前找到可行解决方案的资源(并且我删除了我的工作代码 - 经验教训)。
如有任何帮助,我们将不胜感激!
提前致谢!
更新 6/15
好的,所以我一直在努力解决这个问题。出于某种原因,似乎控件实际上并未被拖动。鼠标在移动,但控件没有随之移动。
好的,我不知道为什么 White DragAndDrop 功能不起作用(或手动使用 leftDown、move、leftUp)。
但我确实找到了解决办法。
基本上我重新编写了白色拖放功能,每一步之间都有一个延迟。所以它看起来像下面这样:
guiObject.Click();
Mouse.LeftDown();
var stepCount = 10;
var stepAmount = (float) (guiObject.ClickablePoint.Y - targetObject.ClickablePoint.Y)/stepCount;
for (var i = 0; i < stepCount; i++)
{
Mouse.Instance.Location = new Point(Mouse.Instance.Location.X, Mouse.Instance.Location.Y - stepAmount);
Thread.Sleep(75); // I played around with the values and 75 seems to work without being too slow
}
Mouse.LeftUp();
希望这对可能遇到此问题的其他人有所帮助。我不知道为什么我需要强制延迟,但它有效。
我在将一个控件拖到另一个控件时遇到问题。我已经成功地能够 select 两个控件,但是当我尝试使用时:
Mouse.Instance.Location = dragControl.ClickablePoint;
Mouse.LeftDown();
Mouse.Instance.Location = dropControl.ClickablePoint;
Mouse.LeftUp();
没有拖动,鼠标移动。但是控件停留在初始位置。
我也试过使用:
Mouse.Instance.DragAndDrop(dragItem, dragItem.ClickablePoint, dropItem, dropItem.ClickablePoint);
仍然没有运气。
我正在做一些实验和一点并让它工作,但我已经忘记了我之前找到可行解决方案的资源(并且我删除了我的工作代码 - 经验教训)。
如有任何帮助,我们将不胜感激!
提前致谢!
更新 6/15
好的,所以我一直在努力解决这个问题。出于某种原因,似乎控件实际上并未被拖动。鼠标在移动,但控件没有随之移动。
好的,我不知道为什么 White DragAndDrop 功能不起作用(或手动使用 leftDown、move、leftUp)。
但我确实找到了解决办法。
基本上我重新编写了白色拖放功能,每一步之间都有一个延迟。所以它看起来像下面这样:
guiObject.Click();
Mouse.LeftDown();
var stepCount = 10;
var stepAmount = (float) (guiObject.ClickablePoint.Y - targetObject.ClickablePoint.Y)/stepCount;
for (var i = 0; i < stepCount; i++)
{
Mouse.Instance.Location = new Point(Mouse.Instance.Location.X, Mouse.Instance.Location.Y - stepAmount);
Thread.Sleep(75); // I played around with the values and 75 seems to work without being too slow
}
Mouse.LeftUp();
希望这对可能遇到此问题的其他人有所帮助。我不知道为什么我需要强制延迟,但它有效。