C#2005实现两窗体之间BUTTON拖动[转]

 楼主可以参考下面的代码,代码是两个窗体Form1,Form2,可以建立一个应用程序把代码放到项目里启动Form1来运行程序,环境是VS2005。


代码Form1.cs
C# code
   
   
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; namespace dragControl { public partial class Form1 : Form { private System.Windows.Forms.Button button1; public Form1() { InitializeComponent(); } protected override void OnLoad(EventArgs e) { base .OnLoad(e); this .button1 = new System.Windows.Forms.Button(); // // button1 // this .button1.Location = new System.Drawing.Point( 116 , 65 ); this .button1.Name = " button1 " ; this .button1.Size = new System.Drawing.Size( 75 , 23 ); this .button1.TabIndex = 0 ; this .button1.Text = " button1 " ; this .button1.UseVisualStyleBackColor = true ; this .button1.MouseDown += new System.Windows.Forms.MouseEventHandler( this .button1_MouseDown); this .Controls.Add( this .button1); } private void button1_MouseDown( object sender, MouseEventArgs e) { this .button1.DoDragDrop(sender, DragDropEffects.Move); } protected override void OnDoubleClick(EventArgs e) { base .OnDoubleClick(e); Form2 frm = new Form2(); frm.Show(); } } }


代码Form2.cs
C# code
   
   
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; namespace dragControl { public partial class Form2 : Form { public Form2() { InitializeComponent(); } protected override void OnLoad(EventArgs e) { base .OnLoad(e); this .AllowDrop = true ; this .DragDrop += new System.Windows.Forms.DragEventHandler( this .Form2_DragDrop); this .DragOver += new System.Windows.Forms.DragEventHandler( this .Form2_DragOver); } private void Form2_DragOver( object sender, DragEventArgs e) { if (e.AllowedEffect == DragDropEffects.Move) { e.Effect = DragDropEffects.Move; } } private void Form2_DragDrop( object sender, DragEventArgs e) { Button btn = e.Data.GetData( " System.Windows.Forms.Button " ) as Button; if (btn != null ) { if (btn.Parent != null ) { btn.Parent.Controls.Remove(btn); btn.Location = this .PointToClient( new Point(e.X, e.Y)); this .Controls.Add(btn); } } } } }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值