【问题标题】:vb.net dragdrop with tab control and MDI container带有选项卡控件和 MDI 容器的 vb.net 拖放
【发布时间】:2013-02-22 02:10:32
【问题描述】:

我有一个 MDI 容器窗口和一个包含简单选项卡控件的辅助窗口。我已经相应地设置了属性以将选项卡拖放到 MDI 容器窗口。

DragDrop 处理程序最终触发,但是“发送者”对象不是我所期望的:

debug.print(sender.toString)

我期待的是源对象,选项卡控件引用,但看起来“发送者”是 MDI 主应用程序窗口。如何覆盖此设置或我缺少什么设置?

我应该注意这是我的初始化代码:

Private Sub tabContainer_MouseDown(sender As Object, e As MouseEventArgs) Handles tabContainer.MouseDown
    tabContainer.DoDragDrop(CType(sender, TabControl), DragDropEffects.Move)
End Sub

这让我相信,当 DragDrop 在 MDI 容器窗口中被捕获时,“发送者”实际上是 TabControl ???

亚历克斯

【问题讨论】:

    标签: vb.net drag-and-drop


    【解决方案1】:

    不,事件的发送者将始终是收到 DragDrop 通知的控件。这就是你的 MDI 容器,因为那是你放开按钮的地方。

    D+D 中没有机制来识别被拖动对象的来源。在很大程度上是设计使然,它可能来自一个完全无法企及的完全不同的过程。如果您需要除被拖动对象之外的任何其他信息,那么您需要将其添加到对象中。只要 D+D 在一个应用程序中,这根本不是问题,您可以创建一个小助手类来存储您需要的任何内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-14
      • 1970-01-01
      • 1970-01-01
      • 2017-01-02
      • 1970-01-01
      相关资源
      最近更新 更多