Jer*_*rry 6 drag-and-drop visual-studio-2010 winforms
我有一个使用UserControl的winforms应用程序.用户控件的工作是收集用户从Windows资源管理器中删除的文件,打开文件,确定类型并相应地处理它.
此控件在Visual Studio 2008 Pro下完美运行.我升级到VS 2010专业版,现在,它不起作用.是否有一个标志或属性已经改变,我应该知道?
我做了一个快速演示来测试.这个演示在2008年完美运行,但在2010年根本不起作用.
设置:创建一个新的winform项目.添加用户控件.在用户控件的代码部分中设置以下代码.(编译以使用户控件显示在工具箱中)将用户控件添加到窗体.运行该程序,并将任何文件从Windows拖到窗体上.如果它工作,用户控制区域应该改变颜色.
public partial class UserControl1 : UserControl
{
public UserControl1()
{
InitializeComponent();
this.AllowDrop = true;
this.DragDrop += new DragEventHandler(UserControl1_DragDrop);
this.DragEnter += new DragEventHandler(UserControl1_DragEnter);
this.DragLeave += new EventHandler(UserControl1_DragLeave);
}
void UserControl1_DragLeave(object sender, EventArgs e)
{
this.BackColor = Color.FromName("Control");
}
void UserControl1_DragEnter(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.FileDrop))
{
e.Effect = DragDropEffects.Copy;
this.BackColor = Color.Blue;
}
else
{
e.Effect = DragDropEffects.None;
}
}
void UserControl1_DragDrop(object sender, DragEventArgs e)
{
this.BackColor = Color.Yellow;
}
}
Run Code Online (Sandbox Code Playgroud)
我愿意接受你们可能想到的任何解释或解决方法!
更新:
我使用下面列出的评论进行了测试.STILL不起作用.但是,我注意到它只在开发环境中失败.当我进入bin目录并手动启动程序时,它工作正常.当我在开发环境中时它只是不起作用,这使得调试有点困难.仍在寻找重大修复.
Han*_*ant 13
这里可能的失败原因是UIPI,即UAC的用户界面组件.您无法从非提升的进程拖动并拖放到升级进程所拥有的窗口.当您从启用了"兼容性"选项卡中的"以管理员身份运行此程序"选项的快捷方式启动Visual Studio时,将触发此操作.唯一的解决方法是关闭该选项.或者直接从.exe文件运行它,如您所发现的那样.
| 归档时间: |
|
| 查看次数: |
3602 次 |
| 最近记录: |