Ich habe ein Datagrid, das mit CSV-Daten gefüllt wird, wenn der Benutzer eine Datei darauf zieht / legt. Ist es möglich, eine Nachricht im leeren Raster anzuzeigen, zum Beispiel "Bitte ziehen Sie eine Datei hierher" oder "Dieses Raster ist derzeit leer". Das Gitter wird derzeit als ein dunkelgraues Feld angezeigt, während ich warte, bis die Datei zum Einrichten der Spalten usw. gezogen wird.
Wir haben das DataGridView-Steuerelement subclassiert und hinzugefügt. Wir brauchten keine Drag / Drop-Funktionalität - wir mussten dem Benutzer nur mitteilen, wenn keine Daten von seiner Abfrage zurückgegeben wurden.
Wir haben eine leereText -Eigenschaft, die wie folgt deklariert ist:
%Vor%und überladen die PaintBackground-Funktion:
%Vor%Was ich in dieser Situation mache, ist, dem Formular ein Tab-Control hinzuzufügen, den DGV in einen Tab und ein Label ("Drag Here" oder etwas ähnliches) in das andere Tab einzufügen. Blenden Sie die Registerkarten aus. Wenn der DGV leer ist, zeigen Sie den Tab mit dem Label an. Genau wie die Antwort von routeNpingme würden Sie das Drag / Drop-Ereignis hier behandeln, den DGV im Hintergrund laden und dann die Tabs wechseln, wenn das Laden beendet ist. Das ist gut, weil Sie in VS Designer auch einfach zwischen den Registerkarten hin und her wechseln können.