资源简介
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;
}
}
}
相关资源
- C#通讯录项目学生期末作业+C#.通讯录
- c# backgroundworker+process进度条
- C# 解决双击TreeView表里checkbox本身Bug问
- C#版学生管理系统源代码
- C#基于joyGetPos的主动方式手柄控制
- 三层架构实现图书管理系统
- (源代码)C#作为上位机,控制51单片
- C#实现的股票交易模拟系统
- C# modbus浮点数处理
- C# 安全移除USB设备
- c# winform 串口收发数据 demo
- 微软C# OleDbHelper.cs 源码
- 利用C#语言实现MSChart控件中图形拖拽
- C# 设计模式 DEMO(供学习参考)
- C#自动升级程序
- WinForm窗体及其控件的自适应
- C#编写的温度采集上位机程序源码
- C#版银海社保系统连接
- c#实现Windows剪贴板监视器
- C#创建Excel文件并将数据导出到Excel文
- c#通过纯代码创建桌面快捷方式、创建
- 教务管理系统c#完整代码+数据库
- c#ftp客户端 支持主动和被动模式
- C#实现字符串RSA加密与解密 算法工程
- C#/SQLSERVER ATM取款机
- c# 精密星历内插计算
- 语音识别系统(asp.net+c#)
- C# TCP异步数据传输
- 评论抓取 asp.net编写 内含详细 数据抓
- C# 自动排课系统 算法 源码
评论
共有 条评论