【问题标题】:Is there an event that occurs after DragDrop event?DragDrop 事件之后是否有事件发生?
【发布时间】:2011-02-05 14:50:31
【问题描述】:

我无法找到在我将文件放入富文本框中后会发生的事件。

*当您将文件放入 Rtb 时,如果您下载了从 Richtextbox 派生的用户控件,则图标的图像将复制到控件上,该控件有一些方法可以操作 RTF,其中包括 AppendRtf(_rtf)

现在我想向你展示一个可行的场景

  1. 我将一个文件拖到 Rtb 中,我检查它是否是一个文件被拖到控件上,如果为真我渲染所有效果

    void txt_send_DragEnter(对象发送者,System.Windows.Forms.DragEventArgs e) { txt_send.Clear(); if (e.Data.GetDataPresent(DataFormats.FileDrop, false) == true) { e.Effect = DragDropEffects.All; }

     }
    
  2. 我删除了文件,在这种情况下,我所做的只是更新一个布尔值,指示文件已被删除 void txt_send_DragDrop(对象发送者,System.Windows.Forms.DragEventArgs e) { File_droped = true;
    }

*在这个事件(2)之后,一张图片被插入到 Rtb 中

  1. 最后,为了测试我上面提出的问题,我调用了 mouseUp 事件,在那里我复制了该图像的 RTF(富文本格式)

*所以现在我将点击控件,并调度以下事件

*我只是想澄清一下,我知道鼠标在拖放事件之后不会准确,我只是添加它来测试我想要执行的实际操作并查看它是否有效,

    void txt_send_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
    {
        if (File_droped)
        {
            txt_main.AppendRtf(txt_send.Rtf); 
        } 
    }

*现在文件的图标(图像)被复制到另一个 RichTextBox(这工作)

现在我再次寻找的是在 DragDrop 事件之后发生的实际事件,因为我希望它在 DragDrop 结束后执行 如果我尝试从事件内部执行此操作,它将不起作用,因为图像仅在事件之后出现 txt_main.AppendRtf(txt_send.Rtf);

【问题讨论】:

    标签: c# .net


    【解决方案1】:

    WinForms 和 WPF 中的拖放操作都会发生这些事件:

    RichTextBox.DragDrop
    RichTextBox.DragEnter
    RichTextBox.DragLeave
    RichTextBox.DragOver
    

    【讨论】:

    • 我知道....以上都没有真正表明您进入、放下、离开的情况是当您将某些东西拖出时,而在您拖动控件时结束跨度>
    • 事件如下所示:DragEnterDragDropTextChanged。所以在DragDrop事件之后的TextChanged,你会看到修改后的内容。这对您正在尝试做的事情有帮助吗?
    猜你喜欢
    • 2023-04-01
    • 2011-03-01
    • 1970-01-01
    • 2011-02-07
    • 1970-01-01
    • 2013-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多