私はUserControlを使用するwinformsアプリケーションを持っています。ユーザコントロールの仕事は、ユーザがWindowsエクスプローラからドロップしたファイルを収集し、ファイルを開き、タイプを決定し、それに応じて処理することです。DragDropがVS2010で動作しないのはなぜですか?
このコントロールは、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:私は、下記のコメントを使用してテスト
。 STILLは機能しません。しかし、私は、開発環境でしか失敗しないことに気付きました。 binディレクトリに移動してプログラムを手動で起動すると、正常に動作します。私が開発環境にいるときにはうまく動作しないので、デバッグが少し難しくなります。まだ大きな画像の修正を探しています。
VS 2010プロの私のために、灰色からホバリングで青、黄色でドロップします。 (ちょうどFYI)。 – KreepN
それはそれがすべきことです。非常に奇妙な!!!私はVS2010がトーストなのかなんて不思議です。他のすべては完全に機能します。私のためにテストしていただきありがとうございます。あなたは上記の設定とは何も変わりませんでしたか?その他の有効なスイッチ/フラグ/プロパティ – Jerry
コードをそのままユーザコントロールにペーストし、form_loadのフォームにあるパネルに追加してテストしました。プロパティは触れられませんでした。あなたがそれをツールボックスから追加すると、それが面白いようになるかもしれません。私が言及したように私はプログラムによってそれを追加しました:UserControl1 uc1 = new UserControl1(); this.panel1.Controls.Add(uc1); – KreepN