如何在Visual Basic中实现鼠标拖动?

时间:2008-09-01 15:54:47

标签: vb.net user-controls drag-and-drop

我需要在Visual Basic 2005 Express中创建一个快速脏的旋钮控件,其值通过用鼠标“抓取”并向上/向下移动光标来递增/递减。因为旋钮本身不移动,我需要跟踪控件矩形之外的鼠标移动。

我使用LabelImageList来实现这一点(我有一个127位图的列表,表示不同位置的旋钮)。

我应该对哪些事件做出反应?

2 个答案:

答案 0 :(得分:0)

您需要控件才能处理三个事件:鼠标按下,鼠标移动和鼠标按下。在Mouse Down事件中,您需要捕获鼠标。这意味着鼠标消息将发送到具有捕获的控件。在鼠标移动事件中,如果捕获输入,则根据鼠标移动的量更新显示的图像。在鼠标按下事件中,如果捕获了输入,则释放捕获。

布尔jjnguy建议是不必要的,因为Control的Capture属性是可读的,因此可以确定是否已设置捕获。

答案 1 :(得分:0)

您的问题是根据鼠标在mouse_move事件中报告的坐标来确定您必须显示的位图。你需要执行一些魔术来转换坐标,并提出一个可用于选择正确图像的值。

这听起来并不复杂,只是在数学上有点试验和错误。 Skizz已经向您展示了如何捕捉事件。