Zum Inhalt springen

[C#] DataGrid-Problem


kLeiner_HobBes

Empfohlene Beiträge

Irgendwie steh' ich wohl auf dem Schlauch:

Ich habe ein DataGrid, nun möchte ich zu einem bestimmten Zeitpunkt feststellen, in welchem "Modus" die Eingabe, bzw. der Focus ist:

a) Ist eine ganze Zeile markiert oder

B) ist er im "Eingabemodus" in einer bestimmten Zelle und läßt den User editieren?

In Abhängigkeit davon soll das Programm nämlich unterschiedlich reagieren.

Ich hab versucht, mit DataGrid.CurrentCell irgendwas anzufangen, dies hilft genausowenig, wie die Information, die mir DataGrid.IsSelected() liefert :(

Wenn da jemand nen Tip oder schon Erfahrung mit hat, wäre ich sehr dankbar :)

Gruß

Link zu diesem Kommentar
Auf anderen Seiten teilen

zu adragon:

Ich vergaß zu sagen, daß es ne Windows.Forms-Anwendung ist. Dort sind diese Events nicht vorhanden. Und irgendwie hab ich auch kein Ereignis gefunden, was mir diese Unterscheidung ermöglicht.

zu arrayhunter:

Klar, IsSelected() liefert mir dasselbe Ergebnis wie bei dir. Dennoch kann ich damit die beiden oben genannten Fälle nicht unterscheiden, da er mir bei beiden Version true liefert :(

Link zu diesem Kommentar
Auf anderen Seiten teilen

zu arrayhunter:

Klar, IsSelected() liefert mir dasselbe Ergebnis wie bei dir. Dennoch kann ich damit die beiden oben genannten Fälle nicht unterscheiden, da er mir bei beiden Version true liefert :(

ok, ich dachte, du wolltest generell auf die Markierung eines Eintrages reagieren

beispiel aus der msdn:



colNum = dataGrid1.CurrentCell.ColumnNumber;

    rowNum = dataGrid1.CurrentCell.RowNumber;

    // Get the selected DataGridColumnStyle.

    DataGridColumnStyle dgCol;

    dgCol = dataGrid1.TableStyles[0].GridColumnStyles[colNum];

    // Invoke the BeginEdit method to see if editing can begin.

    if (dataGrid1.BeginEdit(dgCol, rowNum)){

       // Edit row value. Get the DataTable and selected row.

       DataTable myTable;

       DataRow myRow;

       // Assuming the DataGrid is bound to a DataTable.

       myTable = (DataTable) dataGrid1.DataSource;

       myRow = myTable.Rows[rowNum];

       // Invoke the Row object's BeginEdit method.

       myRow.BeginEdit();

       myRow[colNum] = "New Value";

       // You must accept changes on both DataRow and DataTable.

       myRow.AcceptChanges();

       myTable.AcceptChanges();

       dataGrid1.EndEdit(dgCol, rowNum, false);

    }

    else{

      Console.WriteLine("BeginEdit failed");


Beispiel zu finden unter DataGrid.BeginEdit-Methode

Link zu diesem Kommentar
Auf anderen Seiten teilen

zu adragon:

Ich vergaß zu sagen, daß es ne Windows.Forms-Anwendung ist. Dort sind diese Events nicht vorhanden. Und irgendwie hab ich auch kein Ereignis gefunden, was mir diese Unterscheidung ermöglicht.

achsoo.. ich dachte es wäre für ne aspx site :D

ok dann kann ich dir mometan auch nicht weiterhelfen.. :cool:

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 2 Wochen später...

Danke erstmal für die Hilfe.

Habe es mittlerweile so gelöst, daß ich bei den jeweiligen DataGridTextBox'en aller Spalten zwei Methoden an OnEnter und OnLeave drangehängt habe und somit den Status ermitteln kann.

Nun habe ich folgendes Problem. Wenn der Benutzer im DataGrid in der untersten Zeile, die als "neue" Zeile ja mit einem Sternchen markiert ist, was eingibt, dann wird ja automatisch eine neue DataRow eingefügt, allerdings noch nicht in die dahinterhängende DataTable. Nun muß ich aber auf diese temporäre DataRow zugreifen können, habe aber partout nichts gefunden.

Vielleicht hat schon jemand Erfahrung damit gemacht und kann mir da helfen.

Danke.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...