如何使button控件可以让用户自已拖动摆放位置? 我想是程序界面上有一个button按键.这个按键可以让用户按着鼠标,将它拉到界面上的其它位置.

解决方案 »

  1.   


    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using System.Data.SqlClient;
    using System.Runtime.InteropServices;namespace WindowsApplication1
    {    public partial class Form1 : Form
        {
            Point pt;
            bool moves = true;        public Form1()
            {
                InitializeComponent();
            }
            private void button1_Click(object sender, EventArgs e)
            {
                if (moves == true)
                {
                    MessageBox.Show("sfdfdf");
                }
            }        private void button1_MouseDown(object sender, MouseEventArgs e)
            {
                pt = Cursor.Position;
            }        private void button1_MouseMove(object sender, MouseEventArgs e)
            {
                if (e.Button == MouseButtons.Left)
                {
                    int px = Cursor.Position.X - pt.X;
                    int py = Cursor.Position.Y - pt.Y;
                    button1.Location = new Point(button1.Location.X + px, button1.Location.Y + py);
                    pt = Cursor.Position;
                    moves = false;
                } 
            }        private void button1_MouseUp(object sender, MouseEventArgs e)
            {
                moves = true;
            }
        }

    信息来源:http://zhidao.baidu.com/question/64987841.html
      

  2.   

    private  Point  offset;
            private void button1_MouseDown(object sender, MouseEventArgs e)
            {
                offset = e.Location;
            }
            private void button1_MouseMove(object sender, MouseEventArgs e)
            {
                if (e.Button == MouseButtons .Left )
                {
                    int dx = e.X - offset.X;
                    int dy = e.Y - offset.Y;
                    button1.Location = new Point(button1.Location.X + dx, button1.Location.Y + dy);
                }
            }