我知道需要自己绘制,但如果在onPaint事件中,每移动一像素就绘制一次,必然会影响性能,我看过有的在移动时出现虚线,到目标位置后再绘制,这是用windows中那个消息实现的呢?
解决方案 »
- 100分,一个优化挑战问题,请大家帮忙,解决一下多线程的问题,谢谢.
- 正则高人,求助,或 怎么表示????
- 请教一个Application.DoEvents用法
- C# winforms中能不能实现点击某类显示其详细信息?
- 文件流的 问题 有一点点的 难度
- <请教大虾> 关于Windows消息值拦截...
- 能否设置/获取DTP(DateTimePicker )当前光标位置?
- 强名称到底是干什么用的/?
- 哪位台兄让我实现域名转向!?
- 无法找到脚本库"/aspnet_client/system_web/1_0_3705_0/webUIvalidation.js" ?
- 原来鬼佬们的程序写的还不如我们.现在信心真是倍增啊.
- 请教.NET WEB中,文件下载的问题。为何文件名会变成“download”
static extern short GetAsyncKeyState(int vKey);const int VK_LBUTTON = 0x01;bool IsKeyDown(VirtualKeys vkey)
{
return ( GetAsyncKeyState( (short)VirtualKeys.VK_LBUTTON ) & 0x8000 ) > 0;
} 1)在窗体的MouseDown记录下鼠标点击的位置2) 在MouseMove事件中,查看 IsKeyDown(VK_LBUTTON);
如果是按下了鼠标左键,那么
this.Left += offsetX;
this.Top += offsetY;
bool IsKeyDown(VirtualKeys vkey)
{
return ( GetAsyncKeyState( (short)vkey ) & 0x8000 ) > 0;
}
是有这样的API,不过,不记得了。用VB开发的时候用过。王国荣的vb API的那本书上就有。
一个全局变量
private mouse_Offset as Point你窗体上的任一控件的以下二个事件,试试 Private Sub Top_Left_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles label1.mouseDown
mouse_Offset = sender.Parent.PointToClient(sender.findform().mouseposition)
End Sub Private Sub Bottom_Left_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles lable1.MouseMove
If e.Button = MouseButtons.Left Then
Dim mousepos As Point = sender.findform().mouseposition
mousepos.Offset(-mouse_Offset.X, -mouse_Offset.Y)
Me.Location = mousepos
End If
End Sub