C#を攻略しよう

c#

リストボックス間でドラッグアンドドロップ

リストボックス間でドラッグアンドドラッグするサンプルプログラムです。

リストボックス間でドラッグアンドドロップ
リストボックス内でドラッグアンドドロップ
 エクスプローラーからのドラッグ&ドロップ

ドラッグアンドドロップ


[TOP]


1.「ファイル」→「新しいプロジェクト」→「WINDOWSアプリケーション」を選択。

2.ツールボックスから「ListBox」を上図のように配置する。
 左側が「listBox1」、右側が「listBox2」

3.「listBox1」と「listBox2」の「AllowDrop」プロバティを「true」にする。

4.「Form」から「Load」イベントを選択
  「listBox1」から「MouseDown」イベントを選択
  「listBox2」から「DragEnter」イベントと「DragDrop」イベントを選択し 、次のコードを入力する。(黒文字部分)

private void Form1_Load(object sender, EventArgs e)
{

    listBox1.Items.Add("りんご"); //リストボックスにアイテムを追加する。
    listBox1.Items.Add("バナナ");
    listBox1.Items.Add("メロン");
}

private void listBox1_MouseDown(object sender, MouseEventArgs e)
{

    Point p = Control.MousePosition;
    p = listBox1.PointToClient(p);//マウスの位置をクライアント座標に変換
    int ind = listBox1.IndexFromPoint(p);//マウス下のLBのインデックスを得る
    if (ind > -1)
    {
       listBox1.DoDragDrop(listBox1.Items[ind].ToString(), DragDropEffects.Copy);//ドラッグスタート
    }
}

private void listBox2_DragEnter(object sender, DragEventArgs e)
{

    e.Effect = DragDropEffects.Copy;//ドラッグ&ドロップの効果を、コピーに設定
}

private void listBox2_DragDrop(object sender, DragEventArgs e)
{

    string str = e.Data.GetData(DataFormats.Text).ToString();
    listBox2.Items.Add(str);
}

メソッドの上にマウスポインタをもってくると、ポップアップヒントが表示されます。またF1キーを押すと、ヘルプが立ち上がります。

 

 

※当サイトは、リンクフリーです。