namespace MyPicbox2;
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
string file = @"C:\Users\karet\Pictures\20230614194024.png";
var picbox = new PictureBox
{
Dock = DockStyle.Fill,
};
using var fs = new FileStream(file, FileMode.Open, FileAccess.Read);
picbox.Image = Bitmap.FromStream(fs);
Controls.Add(picbox);
picbox.MouseDown += (s, e) =>
{
if (e.Button == MouseButtons.Left)
{
var effect = DragDropEffects.Copy | DragDropEffects.Move;
string[] paths = {file};
IDataObject data = new DataObject(DataFormats.FileDrop, paths);
var result = picbox.DoDragDrop(data, effect);
if ( result == DragDropEffects.None)
{
MessageBox.Show("D&D failed.");
}
}
};
}
}
string file
に画像ファイルのパスを設定しています。プログラムを実行するとfile
の画像ファイルを読み込みPictureBox
に画像を表示します。
表示された画像をマウスでドラッグしエクスプローラーにドロップすると画像ファイルがコピーされます。シフトキーを押した状態でエクスプローラーにドロップするとファイルが移動されます。
ファイルのコピーや移動処理をプログラミングしていないので、ドロップ側のエクスプローラーで処理していると思われます。
まぁ難にしてもD&Dで出来ることが増えたので今後に生かしたいと思います。
コメント