如何在c#中实现单击一个按钮后,再在窗体内点击一次鼠标,把该按钮移动到第二次点击的位置?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在c#中实现单击一个按钮后,再在窗体内点击一次鼠标,把该按钮移动到第二次点击的位置?相关的知识,希望对你有一定的参考价值。
rt,新手求教。
private void button1_Click(object sender, EventArgs e)
//如何添加一次单击触发的事件?
具体点,在你的class From1中,构造函数上面加一个
bool isClick=false;
在button1_Click函数中
isClick=true;
为窗体添加一个Click响应消息
在From1_Click函数中
if(isClick)
button1.Location=new Point(e.X-button1.Size.Width/2,e.Y-button1.Size.Height/2);
isClick=false;
追问
方法可行,但是我实际上想继承一个带有这个功能的button怎么写?
追答那样也行啊 就是在继承的类中加一个移动的方法,最终还是要在窗体的单击函数中调用这个方法,毕竟你点的是窗体,无法引起按钮的任何消息响应,只能引起窗体的单击消息
参考技术B 定义一个全局变量isClick=falsebutton1_Click里isClick=true
form_Click里
if isClick=true
按钮设置新位置
isClick=false追问
方法可行,但是我实际上想继承一个带有这个功能的button怎么写?这种方法不行。
追答你的要求是点击窗体,按钮移动到点击的位置,这涉及到窗体和点击的位置
光靠button自身的属性是无法实现的
你可以继承一个button类,里面增加一个移动到新位置的方法
当点击form的时候调用这个方法
windows form
追答public partial class Form1 : Form/// <summary>
/// 是否可移动
/// </summary>
private Boolean IsMove = false;
public Form1()
InitializeComponent();
private void Form1_MouseClick(object sender, MouseEventArgs e)
if (e.Button == MouseButtons.Right || e.Button == MouseButtons.Left)
Point p = MousePosition;//获取位置
//其他需要执行的代码
if (IsMove)
this.button1.Location = p;
private void button1_Click(object sender, EventArgs e)
IsMove = true;
找到窗体的MouseClick事件,双击,在这个事件下,下 button移动的代码!
已试过,试的时候,请将窗体最大化!
如何在 Access 2007 的窗体中实现点击按钮打开另一个窗体???
参考技术A1、打开要操作的数据库,在左侧导航窗格中,右击要使用的窗体,在弹出菜单中选择“设计视图”。
2、确定“使用控件向导”按钮处于选中状态,然后单击选中“控件”组中的“按钮”控件,在窗体中的适当位置单击鼠标左键。
3、打开“命令按钮向导”对话框,在“类别”列表框中选择“记录操作”项,在“操作”列表框中选择“添加新记录”项,然后单击“下一步”按钮。
4、在打开的界面中选择“文本”单选钮,在其右侧的文本框中输入“添加记录”,然后单击“下一步”按钮。
5、在打开的界面中将按钮名称改为“添加记录”,单击“完成”按钮,完成对命令按钮的设置。
6、用同样的方法添加“删除记录”、“保存记录”按钮,以及“查找记录”按钮。
7、保存并关闭窗体,至此我们就完成了使用“控件向导”创建命令按钮的操作,在数据库的导航窗格中,双击打开窗体,查看效果。
以上是关于如何在c#中实现单击一个按钮后,再在窗体内点击一次鼠标,把该按钮移动到第二次点击的位置?的主要内容,如果未能解决你的问题,请参考以下文章