自己在程序里动态添加一个Button,想在程序运行时能动态地拖动这个button。
Button b = new Button();
然后把b添加到我用的程序中并显示出来,然后我使用了:
b.DragDrop += new System.Windows.Forms.DragEventHandler(this.h);private void h()
{
....
之中的代码还不知道怎么写
}但是没反应,请各位指教应该怎么实现?谢谢!
Button b = new Button();
然后把b添加到我用的程序中并显示出来,然后我使用了:
b.DragDrop += new System.Windows.Forms.DragEventHandler(this.h);private void h()
{
....
之中的代码还不知道怎么写
}但是没反应,请各位指教应该怎么实现?谢谢!
解决方案 »
- 关于C#三层架构的封装,调用数据问题???
- 拼个字符串
- C#如何让任务栏闪烁
- 一列数的规则如下: 1、1、2、3、5、8、13、21、34...... 求第30位数是多少, 用递归算法实现
- ■■关于服务自动启动问题■■100分,不够再加
- 如何在弹出对话框按确认后关闭当前页面?
- 求。C#方面的资料,电子书,例程。
- 如何将服务器端的数据保存到javascript的数组中
- 如何用C#代码初始化一个Asp.net控件,并在Web上显示
- 简单的问题:在C#里 MessgeBox("TEST","C#",MB_OK);该怎么写?
- winForm窗体控件循环问题:窗体上有5个label:label1....label5用循环语句让他们显示不同的数字!
- DataGrid标题如何设定?还有如何在DataGrid中添加按钮列
1)给button注册一个mousedown事件,当鼠标点下去的时候就触发这个事件了,你可以在这里写一些变量,比如: bool readyToMove = true;还可以记录一下这个时候鼠标的位置
2)给button注册一个mouseup事件,当鼠标抬起来的时候会触发这个事件,比如:readyToMove = false;
3)给button注册一个mousemove事件,当鼠标移动的时候触发这个事件,在这个时候判断一下,3.1)如果readyToMove == true,那么就表示鼠标按下且移动,这是我们想要的动作,这个时候就要改变button的位置,获取当前鼠标位置,判断出当前鼠标位置与mousedown中鼠标位置的偏移,让button移动相同的偏移量即可;
3.2)如果readyToMove == false,那就表示鼠标仅仅在button上方移动了而已,并没有按下(表示不是在拖拽button),不做任何动作;原理就是这样,具体实现需要作些调整
具体可以看MSDN
ms-help://MS.MSDNQTR.v80.chs/MS.MSDN.v80/MS.VisualStudio.v80.chs/dv_fxmancli/html/7cce79b6-5835-46fd-b690-73f12ad368b2.htm