Ich frage mich, ob es einen Unterschied macht, auf welche Steuerelement ich die DoDragDrop-Methode in einer Windows Forms-Anwendung aufrufen.Ist es wichtig, auf welchem Steuerelement Sie die DoDragDrop-Methode aufrufen?
Ich habe ein Formular mit zwei PictureBox-Steuerelementen. Einer kann gezogen werden und der andere hat seine AllowsDrop-Eigenschaft auf true gesetzt.
MouseDown- Ereignishandler für das ziehbar PictureBox ist wie folgt:
private void dragPictureBox_MouseDown(object sender, MouseEventArgs e)
{
if (sender is PictureBox)
{
var pictureBox = (PictureBox) sender;
var effect = pictureBox.DoDragDrop(
pictureBox.Image, DragDropEffects.All);
MessageBox.Show("Drag ended in a " + effect);
}
}
Aber anstatt der Aufruf DoDragDrop auf der PictureBox, ich scheint, wie ich keine Kontrolle verwenden können, zum Beispiel die Form selbst
var effect = this.DoDragDrop(pictureBox.Image, DragDropEffects.All);
oder sogar
var effect = label1.DoDragDrop(pictureBox.Image, DragDropEffects.All);
Macht es differe machen nce auf welcher Kontrolle ich die DoDragDrop Methode aufrufen? Und wenn ja, was ist der Unterschied?
Sie haben absolut Recht. Das gleiche gilt für das GiveFeedback-Ereignis. Interessanterweise treten beide Ereignisse während der Ziehoperation auf, obwohl die Dokumentation angibt, dass sie nur auftritt, wenn sich der Tastatur- oder Maustastenstatus ändert. – comecme