経緯
あるWebサイトで、ファイルをドラッグ&ドロップして処理するUIを見かけ、「これをC#のWindowsフォームでも実現できないか?」と思い調べてみました。
結果として、C#でも非常にシンプルなコードで実装可能であることが分かったので、その方法を共有します。
今回は、テキストボックスに.txtファイルをドロップすると、メッセージボックスで通知される機能を実装します。
基本:textBox.AllowDrop = true に設定する
ドラッグ&ドロップを有効にするには、AllowDrop プロパティを true に設定し、DragEnter と DragDrop イベントを適切に処理する必要があります。
実装コード(C#)
以下が、Windowsフォームアプリでの実装コードです。フォーム上に textBox1 を配置した前提で記述しています。
public Form1()
{
InitializeComponent();
textBox1.AllowDrop = true;
textBox1.DragEnter += textBox_DragEnter;
textBox1.DragDrop += textBox_DragDrop;
}
private void textBox_DragEnter(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.FileDrop))
{
e.Effect = DragDropEffects.Copy;
}
else
{
e.Effect = DragDropEffects.None;
}
}
private void textBox_DragDrop(object sender, DragEventArgs e)
{
string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);
if (files.Length > 0 && Path.GetExtension(files[0]) == ".txt")
{
MessageBox.Show(".txtファイルがドロップされました。");
// 必要に応じてファイル読み取り処理を追加
}
else
{
MessageBox.Show("有効な.txtファイルをドロップしてください。");
}
}
実行イメージと注意点
.txtファイル以外をドロップすると、エラー通知を表示します- 複数ファイルには対応していません(1つ目のファイルのみ処理)
- ファイルの読み込みや中身の表示処理を追加すれば、応用も簡単です
まとめ
C#のWindowsフォームアプリでは、テキストボックスへのファイルのドラッグ&ドロップ機能を簡単に実装可能です。
ユーザーの使い勝手を向上させたいときに、非常に有効な手段です。
本記事のコードをベースに、CSVや画像、PDFなど別形式のファイルにも対応するよう拡張することも可能です。
最後までお読みいただきありがとうございました。
副業から独立まで「稼げる」Webスキルを習得する(PR)
ここまで読んでいただきありがとうございます。 最後に宣伝をさせてください。
「副業を始めたいが、何から手をつければいいかわからない」「独学でスキルはついたが、収益化できていない」という悩みを持つ方には、マンツーマン指導のWebスクール**「メイカラ」**が適しています。
このスクールは、単に技術を教えるだけでなく、**「副業として具体的にどう稼ぐか」**という実務直結のノウハウ提供に特化している点が特徴です。
講師陣は、実際に「副業Webライターから1年で独立して月収100万円」を達成したプロや、現役で利益を出し続けているブロガーなど、確かな実績を持つプレイヤーのみで構成されています。そのため、机上の空論ではない、現場で通用する戦術を学ぶことができます。
副業に特化した強み
- 最短ルートの提示: 未経験からでも実績を出せるよう、マンツーマンで指導。
- AI活用の習得: 副業の時間対効果を最大化するための、正しいAI活用スキルも網羅。
- 案件獲得のチャンス: 運営がWebマーケティング会社であるため、実力次第で社内案件の紹介など、仕事に直結する可能性があります。
受講者の多くは、「在宅でできる仕事を探している」「副業を頑張りたい」という20代・30代・40代が中心です。
受講前には、講師による無料説明が行われます。無理な勧誘はなく、自分に合った副業スタイルやプランを相談できるため、まずは話を聞いてみることから始めてみてはいかがでしょうか。
