• 大小: 28KB
    文件类型: .7z
    金币: 1
    下载: 0 次
    发布日期: 2021-06-05
  • 语言: C#
  • 标签: C#  容器  鼠标  拖动  控件  

资源简介

C# 容器之间的控件拖动: 1. 从左边容器(GroupBox)中的Lable,TextBox,拖到右边的 GroupBox中,并可以在右边GroupBox区域中进行移动该控件及变动宽度和高度。 2.从左边容器(GroupBox)中Button,拖到右边的GroupBox区域后,重新创建一个Button,并不移动之前的Button, 新创建的Button可在该区域移动、改变宽度和高度。

资源截图

代码片段和文件信息

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace GroupBoxMove
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender EventArgs e)
        {
            grbRight.AllowDrop = true;
            //CaptionHeight = 40;
           
        }

        /// 
        /// 拖动的控件; 可在此处修改
        /// 

        private int n_Type = 0;

        private void label1_MouseDown(object sender MouseEventArgs e)
        {
            n_Type = 1;
            label1.DoDragDrop(sender DragDropEffects.Move);
        }

        private void textBox1_MouseDown(object sender MouseEventArgs e)
        {
            n_Type = 2;
            textBox1.DoDragDrop(sender DragDropEffects.Move);
        }

        private void button1_MouseDown(object sender MouseEventArgs e)
        {
            n_Type = 3;
            button1.DoDragDrop(sender DragDropEffects.Move);
        }


        private void grbRight_DragDrop(object sender DragEventArgs e)
        {
            Control col = (Control)sender;

            int nW = (this.Width - this.ClientRectangle.Width) / 2;

            Point pC = new Point(this.Location.X + nW + col.Location.X this.Location.Y + col.Location.Y + this.Height - this.ClientRectangle.Height - nW);
            Point p = new Point(e.X - pC.X e.Y - pC.Y);
            switch (n_Type)
            {
                case 1:
                    grbLeft.Controls.Remove(label1);
                    grbRight.Controls.Add(label1);
                    label1.MouseDown -= new MouseEventHandler(label1_MouseDown);
                    label1.Location = p;
                    MoveControl label = new MoveControl(label1);
                    break;
                case 2:
                    grbLeft.Controls.Remove(textBox1);
                    grbRight.Controls.Add(textBox1);
                    textBox1.Location = p;
                    textBox1.MouseDown -= new MouseEventHandler(textBox1_MouseDown);
                    MoveControl textBox = new MoveControl(textBox1);
                    break;
                case 3:
                    Button btn = new Button();
                    btn.Text = “New“;
                    grbRight.Controls.Add(btn);
                    btn.Location = p;
                    MoveControl button = new MoveControl(btn);
                    break;



            }

        }

        private void grbRight_DragEnter(object sender DragEventArgs e)
        {
            e.Effect = DragDropEffects.Move;

        }
    }
}

评论

共有 条评论