导航
  • 主页
  • C#综合技术
  • C#互联网桌面应用
  • AppLauncher
  • WinForm
  • WPF
  • 问答

如何在DragEnter事件中知道来源是不是本控件?

progame 2003-04-26 04:08:52
RichTextBox的这个事件,我想判断是不是本控件的拖放,如果是,则为Move效果,否则为copy效果
...全文
69 点赞 收藏 16
写回复
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
progame 2003-04-26
rtBox.GiveFeedback += new System.Windows.Forms.GiveFeedbackEventHandler(this.richTextBox_GiveFeedback);
private void richTextBox_GiveFeedback(object sender, System.Windows.Forms.GiveFeedbackEventArgs e)
{
System.Diagnostics.Debug.WriteLine("givefeedback");
}
回复
dragontt 2003-04-26
你是如何写的
回复
progame 2003-04-26
怎么我左拖右拖也触发不了这个事件
回复
dragontt 2003-04-26
话是没错

不过,这个事件在拖动过程中会发生

注意,它是触发拖动源控件的事件哦

所以,你可以把源控件的sender付给一个变量

这样,应该是可以成功
不过,方法笨一点
回复
progame 2003-04-26
而且我根本无法触发这个事件
回复
progame 2003-04-26
我怀疑它不能用啊

GiveFeedback 事件使得拖动事件源能够修改鼠标指针的外观,以便在拖放操作过程中为用户提供视觉反馈。

这和DragOver好像也没什么区别啊
回复
dragontt 2003-04-26
这个事件你可以看看我刚才给你的那个帮助

它在执行拖动操作期间发生。

不过,要区分来源的控件
你都需要去写这个方法才行
所以,说它很笨
回复
progame 2003-04-26
你的意思是说控件的文件被拖动前会触发GiveFeedback?

如果可行,这不是什么笨方法
回复
dragontt 2003-04-26
我知道你的意思
不过,好像不能够直接区分托动的来源

我让你用GiveFeedback事件
是在这个事件发生时
在一个全局变量中指定当前的sender
然后,你可以通过这个sender的来判断来源

当然,这是个笨方法
回复
progame 2003-04-26
我要的不是区分后的效果,而是如何去区分
回复
dragontt 2003-04-26
GiveFeedback

在你要区分来源的地方写Control.GiveFeedback 事件

ms-help://MS.VSCC/MS.MSDNVS.2052/cpref/html/frlrfSystemWindowsFormsControlClassGiveFeedbackTopic.htm
回复
progame 2003-04-26
我想支持文本拖放

有可能是本控件的文本拖动到本控件的其它位置
也有可能是外部文本拖到本控件

我如何识别它们

就是这样
回复
timmy3310 2003-04-26
说实话,我还是不是很明白你的问题,能不能说清楚一点

sender肯定会是该控件,这是没错的,所以我给你的代码实际上也没什么用
回复
progame 2003-04-26
sender?

我开始也是这样想
结果发现sender是事件触发者,一直是当前控件的
不是拖放源
回复
timmy3310 2003-04-26
if( sender == this )
//....
else
return;
回复
progame 2003-04-26
up
回复
发动态
发帖子
C#
创建于2007-09-28

10.4w+

社区成员

.NET技术 C#
申请成为版主
社区公告

全世界最好的语言,没有之一.