如何在c#中实现单击一个按钮后,再在窗体内点击一次鼠标,把该按钮移动到第二次点击的位置?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在c#中实现单击一个按钮后,再在窗体内点击一次鼠标,把该按钮移动到第二次点击的位置?相关的知识,希望对你有一定的参考价值。

rt,新手求教。
private void button1_Click(object sender, EventArgs e)

//如何添加一次单击触发的事件?

参考技术A 楼上说的可以
具体点,在你的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=false
button1_Click里isClick=true
form_Click里
if isClick=true
按钮设置新位置
isClick=false追问

方法可行,但是我实际上想继承一个带有这个功能的button怎么写?这种方法不行。

追答

你的要求是点击窗体,按钮移动到点击的位置,这涉及到窗体和点击的位置
光靠button自身的属性是无法实现的

你可以继承一个button类,里面增加一个移动到新位置的方法
当点击form的时候调用这个方法

参考技术C winform中还是asp.net中?追问

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 的窗体中实现点击按钮打开另一个窗体???

参考技术A

1、打开要操作的数据库,在左侧导航窗格中,右击要使用的窗体,在弹出菜单中选择“设计视图”。

2、确定“使用控件向导”按钮处于选中状态,然后单击选中“控件”组中的“按钮”控件,在窗体中的适当位置单击鼠标左键。

3、打开“命令按钮向导”对话框,在“类别”列表框中选择“记录操作”项,在“操作”列表框中选择“添加新记录”项,然后单击“下一步”按钮。

4、在打开的界面中选择“文本”单选钮,在其右侧的文本框中输入“添加记录”,然后单击“下一步”按钮。

5、在打开的界面中将按钮名称改为“添加记录”,单击“完成”按钮,完成对命令按钮的设置。

6、用同样的方法添加“删除记录”、“保存记录”按钮,以及“查找记录”按钮。

7、保存并关闭窗体,至此我们就完成了使用“控件向导”创建命令按钮的操作,在数据库的导航窗格中,双击打开窗体,查看效果。

以上是关于如何在c#中实现单击一个按钮后,再在窗体内点击一次鼠标,把该按钮移动到第二次点击的位置?的主要内容,如果未能解决你的问题,请参考以下文章

C#中如何实现一个按钮多次单击的事件

c#如何单击按钮显示另一个窗体

c#如何单击按钮显示另一个窗体?

怎样在C#中实现父窗体向子窗体传值和子窗体向父窗体传值

Delphi7中实现单击Form1中的按钮,弹出Form2并进行Form2中的下一步操作?!

C#里如何点击“取消(button2)”按钮后关闭窗体2,并返回窗体1?