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

rt,新手求教。
private void button1_Click(object sender, EventArgs e)
{
//如何添加一次单击触发的事件?

}

第1个回答  推荐于2017-12-16
楼上说的可以
具体点,在你的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怎么写?

追答

那样也行啊 就是在继承的类中加一个移动的方法,最终还是要在窗体的单击函数中调用这个方法,毕竟你点的是窗体,无法引起按钮的任何消息响应,只能引起窗体的单击消息

本回答被网友采纳
第2个回答  2015-05-04
定义一个全局变量isClick=false
button1_Click里isClick=true
form_Click里
if isClick=true
按钮设置新位置
isClick=false追问

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

追答

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

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

第3个回答  2015-05-04
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移动的代码!

已试过,试的时候,请将窗体最大化!

如何在c#中实现单击一个按钮后,再在窗体内点击一次鼠标,把该按钮移动...
具体点,在你的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;} ...

用C#编写一个程序,按钮对象跟随鼠标指针在窗体内移动。当用户单击窗体时...
很简单,在窗体Form1上设置一个按钮button1,然后找到窗体的属性中的事件页面,找到鼠标事件中的 MouseMove 双击一下就会自动添加一个事件代码方法 private void Form1_MouseMove(object sender, MouseEventArgs e){ button1.Top = e.Y + 1;\/\/这个代码设置按钮的左上角纵坐标比鼠标的位置多一个点,...

在一个 web页面上 点击一个按钮 弹出一个 对话框 点击 确定 跳转到...
前面那个用message框!后面那个就用超链接了!

如何在C#中点击一个按钮,打开指定的网页
2.如果是在C#的应用程序中单击一个按钮,打开指定的网页首先添加引用一个名称空间:using System.Diagnostics;在按钮的单击事件里写

请问如何在Visual studio中实现单击一个button1按钮,然后跳转到另一个...
假设有两个窗口:Form1、Form2,并且Form1是启动窗口 在Form1 上有个按钮Button1,那么在Button1的Click事件中添加如下代码:Form2 f2 = new Form2();f2.Show();在Form2上有个按钮Button2,在Button2的Click事件中添加如下代码:this.Close();这样就可以了。

C#WinForm中如何实现长摁一个按钮button实现循环执行一个操作,放开就停...
做一个Timer,MouseDown里开启Timer,在Timer的触发事件里做处理,不用循环,设定多久执行一次就好。在MouseUp里关闭Timer。

C#中如何通过From1中的按钮单击事件打开From2,From2关闭后再次点击From...
你from2是Close的,所以再次调用的时候会报错,每次按钮的时候重新new一下窗体就可以了~

C#中如何实现一个按钮多次单击的事件
在代码页声明一个局部变量private int t=0;找到button的单击事件,进入其中:private void button_Click(object sender,EventArgs e){ switch(t){ case 0:label1.Text = "生活就是人生";break;case 1:label2.Text = "人生就是时间";break;case 2:label3.Text = "时间就是金钱";break;case 3...

C#中如何通过单击一个窗体的按钮给另一个窗体的控件赋值
首先假如有窗体Form1和Form2,Form2中有个TextBox控件和一个属性str public string str { set{ this.textBox1.Text=value;} } Form1中有个Form2的实例f,在Form1中的按钮的单击事件中写上 f.str="abc";\/\/在这之前要有另外一个按钮显示Form2;...

怎样让易语言单击一个按钮,弹出一个窗口,再单击一次,弹出另一个...
.程序集变量 窗口位置, 整数型 .子程序 __启动窗口_创建完毕 窗口位置 = 1 .子程序 _按钮1_被单击 .判断开始 (窗口位置 = 1)载入 (窗口1, , 假)窗口位置 = 2 .判断 (窗口位置 = 2)载入 (窗口2, , 假)窗口位置 = 3 .判断 (窗口位置 = 2)载入 (窗口3, , 假)窗口位置 =...

相似回答