none
加入app.manifest后,form的DragDrop事件不响应了,请帮助 RRS feed

  • 問題

  • 写了一个c#程序,为了访问注册表,把app.manifest中 访问权限改为

    <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
    发现
    form的DragDrop事件不被响应了。
    请问什么原因,如何解决?

    2011年10月14日 下午 04:49

所有回覆

  • 參考以下文章有原因及解決方案

    [Win7下的DragDrop事件不触发?]

    再次提醒您, 您一直都沒有主動確認過去發問的問題是否解決.


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。


    2011年10月14日 下午 05:22
    版主
  • 參考以下文章有原因及解決方案

    [Win7下的DragDrop事件不触发?]

    再次提醒您, 您一直都沒有主動確認過去發問的問題是否解決.


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。



    谢谢,看了你的文章,我采用了第3种方法,在程序中加入了

    [DllImport("user32.dll", SetLastError = true)]
    static extern IntPtr ChangeWindowMessageFilter(uint message, uint dwFlag);

    uint WM_DROPFILES = 0x0233;
    uint WM_COPYDATA = 0x4A;
    uint MSGFLT_ADD = 1;

     

    ChangeWindowMessageFilter(WM_DROPFILES, MSGFLT_ADD);
    ChangeWindowMessageFilter(WM_COPYDATA, MSGFLT_ADD);
    ChangeWindowMessageFilter(0x0049, MSGFLT_ADD);

    但是还是有问题

    Form1_DragEnter触发了

     private void Form1_DragEnter(object sender, System.Windows.Forms.DragEventArgs e)
            {
                   
                if (e.Data.GetDataPresent(DataFormats.FileDrop))
                    e.Effect = DragDropEffects.Link;
                else e.Effect = DragDropEffects.None;
                    
            }

     

    但是Form1_DragDrop没有触发,请问如何解决啊

     private void Form1_DragDrop(object sender, System.Windows.Forms.DragEventArgs e)
            {
                try
                {

                   ...

                }

          }

     

     

     

    2011年10月15日 上午 05:18