none
C# 拖放操作 RRS feed

  • 问题

  • 我想做一个类似QQ拖动发送文件的程序,也就是将文件拖放到QQ窗体就可以发送文件了.
    大家帮帮忙.
    2009年10月12日 11:18

答案

  • 可参考Panel等很多控件都有的一系列事件 DragXXXX
    Wenn ich dich hab’,gibt es nichts, was unerträglich ist.坚持不懈!http://hi.baidu.com/1987raymond
    • 已标记为答案 助-_-助 2009年10月15日 8:13
    2009年10月12日 12:19
    版主
  • 你好!
         可以参考一下:
    http://blog.csdn.net/3cts/archive/2007/07/21/1701127.aspx
         希望对你有帮助!
    周雪峰
    • 已标记为答案 助-_-助 2009年10月15日 8:13
    2009年10月13日 5:38
    版主
  • 呵呵,因为觉得去C#论坛的话,你会得到更好的帮助。 :)

    我已经尝试着下载那个例子,因为是个VS2005的例子,我用VS2008来打开的。然后得到了这样以下的警告:

    Warning 1 Cannot load type library for reference "CSEXWBDLMANLib". 库没有注册。 (Exception from HRESULT: 0x8002801D (TYPE_E_LIBNOTREGISTERED)) csExWB
    Warning 2 The referenced component 'CSEXWBDLMANLib' could not be found.  

    你是不是也是这样的情况呢?

    详细看过那个链接上的文档说明之后,在打开项目之前先要做这些事情:

    • Copy csExWBDLMan.dll located in the csExWB\COM_Component_Source_Binaries\ReleaseMinDependency sub folder to your system directory
    • Register csExWBDLMan.dll using regsvr32.exe
    • Open the solution


    就是要先把....csEXWB\COM_Component_Source_Binaries\ReleaseMinDependency路径下的csExWBDLMan.dll系统目录下(例如:C:\windows\system32\),然后打开“运行”,用regsvr32.exe的命令来注册一下这个类库(regsvr32.exe C:\windows\system32\csExWBDLMan.dll),接着再打开这个项目。

    看下问题是否解决了呢?

    希望对你有所帮助。 :)


    Please remember to mark the replies as answers if they help and unmark them if they provide no help.
    Welcome to the All-In-One Code Framework! If you have any feedback, please tell us.
    • 已标记为答案 助-_-助 2009年10月15日 8:13
    2009年10月14日 14:08

全部回复

  • 可参考Panel等很多控件都有的一系列事件 DragXXXX
    Wenn ich dich hab’,gibt es nichts, was unerträglich ist.坚持不懈!http://hi.baidu.com/1987raymond
    • 已标记为答案 助-_-助 2009年10月15日 8:13
    2009年10月12日 12:19
    版主
  • 你好!
         可以参考一下:
    http://blog.csdn.net/3cts/archive/2007/07/21/1701127.aspx
         希望对你有帮助!
    周雪峰
    • 已标记为答案 助-_-助 2009年10月15日 8:13
    2009年10月13日 5:38
    版主
  • 上网找了段代码,基本是实现了拖动..但是左边有一块是用webbrower的,就无法发送了...可不可以拖动的时候在webbrower上面也触发FormChat的方法?
    private void FormChat_DragDrop(object sender, DragEventArgs e)
            {
                string path = ((System.Array)e.Data.GetData(DataFormats.FileDrop)).GetValue(0).ToString();
                
    
                sendFile(path);
            }
    
            private void FormChat_DragEnter(object sender, DragEventArgs e)
            {
                if (e.Data.GetDataPresent(DataFormats.FileDrop))
                    e.Effect = DragDropEffects.Link;
                else 
                    e.Effect = DragDropEffects.None;
    
            }
    2009年10月13日 8:03
  • 大家帮帮忙啊...
    2009年10月14日 3:36
  • 我记得有个属性可以设置当子控件无法响应事件的时候可以设置其容器控件响应事件 但是现在记不起来咯,期待其他朋友为你解答~~~
    Wenn ich dich hab’,gibt es nichts, was unerträglich ist.坚持不懈!http://hi.baidu.com/1987raymond
    2009年10月14日 4:02
    版主
  • 谢谢回复,大家有没有知道Raymond Tang说的那种方式?

    2009年10月14日 7:01
  • 你好!

    你是不是想在Webbrowser上也实现拖放的操作呢?

    如果是的话,希望这个可以帮助你。
    http://www.codeproject.com/KB/miscctrl/csEXWB.aspx

    另外,我建议你可以去Visual C#论坛询问你的问题,相信会更有针对性的,你的问题也会得到更好的解答。

    希望对你有所帮助。 :)


    Please remember to mark the replies as answers if they help and unmark them if they provide no help.
    Welcome to the All-In-One Code Framework! If you have any feedback, please tell us.
    2009年10月14日 9:48
  • 谢谢YiChun Chen,我说的问题就是 在Webbrowser上实现拖放的操作...那个项目我已经拷贝下来了,但是 那个引用的CSEXWBDLMANLib找不到.

    YiChun Chen,真细心,发布问题的时候忘记选到Visual C#论坛了.-_-
    2009年10月14日 10:22
  • 呵呵,因为觉得去C#论坛的话,你会得到更好的帮助。 :)

    我已经尝试着下载那个例子,因为是个VS2005的例子,我用VS2008来打开的。然后得到了这样以下的警告:

    Warning 1 Cannot load type library for reference "CSEXWBDLMANLib". 库没有注册。 (Exception from HRESULT: 0x8002801D (TYPE_E_LIBNOTREGISTERED)) csExWB
    Warning 2 The referenced component 'CSEXWBDLMANLib' could not be found.  

    你是不是也是这样的情况呢?

    详细看过那个链接上的文档说明之后,在打开项目之前先要做这些事情:

    • Copy csExWBDLMan.dll located in the csExWB\COM_Component_Source_Binaries\ReleaseMinDependency sub folder to your system directory
    • Register csExWBDLMan.dll using regsvr32.exe
    • Open the solution


    就是要先把....csEXWB\COM_Component_Source_Binaries\ReleaseMinDependency路径下的csExWBDLMan.dll系统目录下(例如:C:\windows\system32\),然后打开“运行”,用regsvr32.exe的命令来注册一下这个类库(regsvr32.exe C:\windows\system32\csExWBDLMan.dll),接着再打开这个项目。

    看下问题是否解决了呢?

    希望对你有所帮助。 :)


    Please remember to mark the replies as answers if they help and unmark them if they provide no help.
    Welcome to the All-In-One Code Framework! If you have any feedback, please tell us.
    • 已标记为答案 助-_-助 2009年10月15日 8:13
    2009年10月14日 14:08
  • 我试了,找到了那个dll。。但是家里没有环境,等明天去公司再看看。。

    我下午去C#论坛上问了,现在暂时还没有人回答.-_-
    2009年10月14日 15:44
  • 耐心地等一下吧,如果有人知道的话会回复你的。 :)
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.
    Welcome to the All-In-One Code Framework! If you have any feedback, please tell us.
    2009年10月15日 2:14