zoukankan      html  css  js  c++  java
  • 拖拽生成控件副本

    public class Form1
    {
        //计数变量,说明输出了第N个Button
        private int count = 1;
        private void Form1_Load(System.Object sender, System.EventArgs e)
        {
            //窗体自身支持接受拖拽来的控件
            this.AllowDrop = true;
        }
    
        private void Button1_MouseDown(System.Object sender, System.Windows.Forms.MouseEventArgs e)
        {
            //左键的话,标志位为true(表示拖拽开始)
            if ((e.Button == System.Windows.Forms.MouseButtons.Left))
            {
                Button1.DoDragDrop(Button1, DragDropEffects.Copy | DragDropEffects.Move);
                //形成拖拽效果,移动+拷贝的组合效果
            }
        }
    
        private void Form1_DragEnter(System.Object sender, System.Windows.Forms.DragEventArgs e)
        {
            //当Button被拖拽到WinForm上时候,鼠标效果出现
            if ((e.Data.GetDataPresent(typeof(Button))))
            {
                e.Effect = DragDropEffects.Copy;
            }
        }
    
        private void Form1_DragDrop(System.Object sender, System.Windows.Forms.DragEventArgs e)
        {
            //拖放完毕之后,自动生成新控件
            Button btn = new Button();
            btn.Size = Button1.Size;
            btn.Location = this.PointToClient(new Point(e.X, e.Y));
            //用这个方法计算出客户端容器界面的X,Y坐标。否则直接使用X,Y是屏幕坐标
            this.Controls.Add(btn);
            btn.Text = "按钮" + count.ToString();
            count = count + 1;
        }
        public Form1()
        {
            DragDrop += Form1_DragDrop;
            DragEnter += Form1_DragEnter;
            Load += Form1_Load;
        }
    }
  • 相关阅读:
    python — 文件操作
    Android存储
    JAVA 里面 synchronized作用
    UML元素
    ubuntu18.04 命令行安装gradle
    UML时序图
    视觉SLAM中的数学——解方程AX=b与矩阵分解:奇异值分解(SVD分解) 特征值分解 QR分解 三角分解 LLT分解
    现行最小二乘过约束和欠约束如何求解
    SLAM-G2O分析
    自定义Gradle插件
  • 原文地址:https://www.cnblogs.com/jizhiqiliao/p/10026682.html
Copyright © 2011-2022 走看看