Benutzer mit den meisten Antworten
Markieren eines Zelleninhalts bei CellClick

Frage
-
Guten Morgen,
im Moment arbeite ich an einem studienbedingten Projekt.
Hierbei muss ich einen bereits geschriebenen Code editieren, was im Bezug auf die Übersicht nicht immer einfach ist.
Probleme habe ich jetzt bei den erstellten DataGrids, die Werte und Bemerkungen enthalten.
Sobald auf eine gewisse Zelle geklickt wird, soll der Inhalt bereits markiert werden, damit man direkt Einträge vornehmen kann. Momentan ist bei Klick eine 0 eingetragen, die leider nicht markiert wird und somit hinderlich ist.
Mein Ansatz war folgender:
private void vbDataGridView_CellEnter(object sender, DataGridViewCellEventArgs e) { vbDataGridView.BeginEdit(true); }
Das funktioniert leider nicht und ich muss zugeben, dass ich bisher nie wirklich mit DataGrids gearbeitet habe.
Meine Frage wäre nun, ob es einen Weg gibt, den Inhalt einer Zelle zu markieren, wenn man auf diese klickt.
(Edit: Nebenbei sollte ich wohl erwähnen, dass das Programm in Framework 2.0 geschrieben wurde)
Mit freundlichen Grüßen
Christy
- Bearbeitet Crizzlybear Dienstag, 11. März 2014 10:05
Antworten
-
Hallo,
dann probiere es bitte nochmal mit folgendem Code:private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e) { dataGridView1.CurrentCell = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex];//Aktuelle Zelle setzen dataGridView1.BeginEdit(false);//Zelle in dne beárbeitungsmodus bringen var tb = dataGridView1.EditingControl as TextBoxBase;//aktuelles Control zum bearbeiten abrufen if (tb != null) { tb.SelectAll();//gesamten Inhalt markieren } }
Diese Lösung ist auch eleganter, als die vorherige mit dem Senden von Strg+A.
Ich gehe hier natürlich davon aus, das deine Spalte eine DataGridViewTextBoxColumn ist.
Wenn es dann noch immer nicht funktioniert, wird der Eventhandler denn auch ausgeführt? ist das EditingControl wirklich vom Typ TextBoxBase? Um welchen Spaltentyp handelt es sich?
Koopakiller [kuːpakɪllɐ] (Tom Lambert)
Webseite |
Code Beispiele |
Facebook |
Twitter |
Snippets
C# ↔ VB.NET Konverter
Markiert bitte beantwortende Posts als Antwort und bewertet Beiträge. Danke.- Als Antwort vorgeschlagen Chrizzlybear Dienstag, 18. März 2014 08:35
- Als Antwort markiert Ciprian Bogdan Dienstag, 18. März 2014 10:24
Alle Antworten
-
Hallo,
ich vermute mal, das du mit einem DataGridView arbeitest.Versuch es mal bitte mit folgendem Code:
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e) { dataGridView1.CurrentCell = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex]; dataGridView1.BeginEdit(false); SendKeys.Send("^A"); }
Dabei wird die angeklickte Zelle ausgewähltund in den Bearbeitungsmodus versetzt. Dann virtualisiere ich die Tastenkombination Strg+A, womit alle markiert wird.
Koopakiller [kuːpakɪllɐ] (Tom Lambert)
Webseite |
Code Beispiele |
Facebook |
Twitter |
Snippets
C# ↔ VB.NET Konverter
Markiert bitte beantwortende Posts als Antwort und bewertet Beiträge. Danke. -
Hi,
ist dieser Thread noch aktuell ? Bist Du hier inzwischen weitergekommen ?
Gruß,
CiprianCiprian Bogdan, MICROSOFT
Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip„Entwickler helfen Entwickler“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.
-
Hallo,
dann probiere es bitte nochmal mit folgendem Code:private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e) { dataGridView1.CurrentCell = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex];//Aktuelle Zelle setzen dataGridView1.BeginEdit(false);//Zelle in dne beárbeitungsmodus bringen var tb = dataGridView1.EditingControl as TextBoxBase;//aktuelles Control zum bearbeiten abrufen if (tb != null) { tb.SelectAll();//gesamten Inhalt markieren } }
Diese Lösung ist auch eleganter, als die vorherige mit dem Senden von Strg+A.
Ich gehe hier natürlich davon aus, das deine Spalte eine DataGridViewTextBoxColumn ist.
Wenn es dann noch immer nicht funktioniert, wird der Eventhandler denn auch ausgeführt? ist das EditingControl wirklich vom Typ TextBoxBase? Um welchen Spaltentyp handelt es sich?
Koopakiller [kuːpakɪllɐ] (Tom Lambert)
Webseite |
Code Beispiele |
Facebook |
Twitter |
Snippets
C# ↔ VB.NET Konverter
Markiert bitte beantwortende Posts als Antwort und bewertet Beiträge. Danke.- Als Antwort vorgeschlagen Chrizzlybear Dienstag, 18. März 2014 08:35
- Als Antwort markiert Ciprian Bogdan Dienstag, 18. März 2014 10:24