| 

.NET C# Java Javascript Exception

6
Wahrscheinlich ist es was ganz einfaches, aber ich finde einfach nichts über google.

Ich habe eine DataGridView, die an einer DataTable hängt. Die DataTable fülle ich manuell mit Werten. Das Alles funktioniert ...
Wenn ich jetzt in einer Zelle stehe und erfasse z.B. den Wert "Hallo" und dann von dort aus auf einen Button im View drücke, verändere ich den Wert in Hallo Hanni" und setze den Fokus wieder zurück auf die Zelle. (Welche Zelle das ist, habe ich mir vorher gemerkt)

Mein Code an dieser Stelle:
(zwecks Lesbarkeit habe ich nur den wichsten Teil in einer Funktion zusammengestellt)

private void btnZusatz_Click(object sender, EventArgs e)
{
string zusatz = myZusatz;

if (myCurrentGridCell != null)
{
s = myCurrentGridCell.Value.ToString() + zusatz;
myCurrentGridCell.Value = s;

myGrid.CurrentCell = myCurrentGridCell;
myGrid.BeginEdit(true);
}
}

Mein Problem:
Der Wert ist da, Die Zelle ist aktiv, aber das Wort ist noch (!) markiert, sodass der user nicht gleich weiter schreiben kann ... "Hallo Hanni, ..."

PS:
Für ne Textbox habe ich`s gefunden:
public void AddZusatz(TextBox tb, string zusatz)
{
if (tb != null)
{
tb.Text = tb.Text.ToString() + zusatz;
tb.Focus();
tb.Select(tb.Text.Length, 0); // <-----
}
}

Vielen Dank im Voraus !
09.01.2012
Manfred 71 1 5
1 Antwort
1
Mittlerweile habe ich selbst einen Weg gefunden.

Man muss einen KeyPress simulieren (z.B. Taste Pfeil Rechts).

Meine Funktion sieht jetzt so aus:

public void AppendStringInGridcell(DataGridView grid, DataGridViewCell cell, string zusatz)
{
if (cell != null)
{
string s = cell.Value.ToString() + zusatz;
cell.Value = s;

grid.CurrentCell = cell;
grid.BeginEdit(true);
SendKeys.Send("{RIGHT}");
}
}

Die Frage ist damit erledigt.
16.01.2012
Manfred 71 1 5

Stelle deine .net-Frage jetzt!
TOP TECHNOLOGIES CONSULTING GmbH