类似"拖一个文件到windows回收站图标" 的那样的效果.

本文探讨了如何实现在Windows窗体应用程序中通过拖拽一个按钮从FormA到FormB,并在FormB上执行特定代码,同时在FormA执行另一段代码。文章通过定义委托和事件处理程序的方法,展示了如何在不同窗体间传递消息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题如下:
我有一个窗体FormA,里面有一个Button1...还有一段代码codeA
另有一个窗体FormB.是MDI的子窗体.一段代码codeB(Button1)

我的问题是,
1.我要拖FormA的按钮Button1到FormB上,
2.松开之后,然后在FormB上执行codeB,在FormA上执行一段代码codeA.

类似"拖一个文件到windows回收站图标"的那样的效果.

有没有达人,能帮个忙给瞅瞅?或者是提供一下思路.

如果我来作,我会这样分析
"或者是说,我把button1拖到窗体FORMB的时候,B里面要执行一个方法,这个方法需要button1里面的一些东西.."
说明FromB中的响应方法要关联或依赖button类,如果是依赖,则其传入的参数应当是button1;

delegatevoiddelEventForm1();
delegatevoiddelEventForm2(ButtonbtnInstance);
/// <summary>
///当鼠标离开form1时候触发框架窗体的离开事件,当鼠标离开form2的时候触发框架窗体的进入事件,此框架负责检测到拖动事件,并负责绘制动画效果
/// </summary>
classMainFrame
{
delEventForm1delForm1Event=null;
delEventForm2delForm2Event=null;
Form1frm1Instance;
Form2frm2Instance;
publicvoidinitFrame()
{
delForm1Event=newdelEventForm1(frm1Instance.EventDrag);
delForm2Event=newdelEventForm2(frm2Instance.EventDrag);
}
publicvoidEventForm1Leave()
{
delForm1Event();
}
publicvoidEventForm2Entered()
{
delForm2Event(frm1Instance.btnInstance);
}
}
classForm1:System.Windows.Forms.Form
{
publicButtonbtnInstance;
publicvoidEventDrag()
{
//dosomethingwhilebuttonwasdraged
}
}
classForm2:System.Windows.Forms.Form
{
publicvoidEventDrag(ButtonbtnInstance)
{
//dosomethingusingbtnInstance
}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值