У меня есть приложение winforms, которое использует UserControl. Работа пользовательского элемента управления состоит в том, чтобы собрать файл, который пользователь перетаскивает на него из проводника Windows, открыть файл, определить тип и обработать его соответствующим образом.
Этот элемент управления работал отлично в Visual Studio 2008 Pro. Я обновился до VS 2010 Pro, и теперь он не работает. Есть флаг или свойство, которое изменилось, о чем я должен знать ??
Я сделал небольшую демонстрацию для тестирования. Это демо отлично работает в 2008 году, но совсем не работает в 2010 году.
Настройка: создать новый проект winform. Добавьте пользовательский элемент управления. Установите следующий код в разделе кода пользовательского элемента управления. (скомпилируйте, чтобы пользовательский элемент управления появился в наборе инструментов) Добавьте пользовательский элемент управления в форму. Запустите программу и перетащите любой файл из окон на форму. Если это работает, область управления пользователя должна изменить цвета.
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;
}
}
Я открыт для любых объяснений или исправлений, которые вы, ребята, можете придумать!
UPDATE:
Я протестировал, используя комментарии, перечисленные ниже. Все еще не работает. Тем не менее, я отметил, что это не работает только в среде разработки. Когда я захожу в каталог bin и запускаю программу вручную, она работает нормально. Это просто не работает, когда я нахожусь в среде разработки, что затрудняет отладку. Все еще ищу исправление большой картинки.