1

私は C# アプリを持っています。画像がフォームにドロップされたときに、フォームの画像ボックスに画像が表示されるようにしたいと考えています。私はこれを試しました

    private void Form1_DragEnter(object sender, DragEventArgs e)
    {
        e.Effect = DragDropEffects.Move;   
    }

    private void Form1_DragDrop(object sender, DragEventArgs e)
    {
        Graphics p = pictureBox1.CreateGraphics();
        p.DrawImage((Image)e.Data.GetData(DataFormats.Bitmap), new Point(0, 10));
    }

しかし、うまくいきません。

Plsは私が間違ったことをしましたか?

4

2 に答える 2

1

ファイルからドラッグしていると思います。このための簡単なコードは次のようになります。

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
        this.AllowDrop = true;
        this.DragDrop += new System.Windows.Forms.DragEventHandler(this.Form1_DragDrop);
        this.DragEnter += new System.Windows.Forms.DragEventHandler(this.Form1_DragEnter);
    } 
    private void Form1_DragEnter(object sender, DragEventArgs e)
    {
        if (e.Data.GetDataPresent(DataFormats.FileDrop))
        {
            e.Effect = DragDropEffects.Copy; 
        }
        else
        {
            e.Effect = DragDropEffects.None;
        }
    }

    private void Form1_DragDrop(object sender, DragEventArgs e)
    {
        string[] filex = (string[])e.Data.GetData(DataFormats.FileDrop);
        if (filex.Length > 0)
        { 
                pictureBox1.ImageLocation = filex[0]; 

        }
    }

}
于 2013-06-30T05:48:47.583 に答える
0

これが解決策ではないことを心から願っていますが、あなたは多くの情報を提供していないので、ここから始めて、より多くの情報を提供していきます. このサンプルを取得したときに、適切なイベントにバインドしましたか? 次のように:

this.DragDrop += new System.Windows.Forms.DragEventHandler(this.Form1_DragDrop);
this.DragEnter += new System.Windows.Forms.DragEventHandler(this.Form1_DragEnter);

また、初期化時に、次のことを行いましたか:

AllowDrop = true;
于 2013-06-30T05:13:04.520 に答える