DataGridView-wenn ich drücken Sie die EINGABETASTE, geht es in die nächste Zelle
ich habe ein datagridview mit 5 Spalten,wenn ich drücken Sie "enter" geht es in die nächste Zelle und wenn es ankommt, um am Ende der Zeilen, wenn ich drücken Sie die EINGABETASTE, es fügt neue Zeilen,aber mein problem ist, wenn ich zu bewegen, um den vorherigen Zeilen, nachdem ich enter drücken, springt die Zeilen und nicht an die nächsten Zellen,jede Hilfe?
public partial class Form1 : Form
{
public static int Col;
public static int Row;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
dataGridView1.AllowUserToAddRows = false;
dataGridView1.Rows.Add();
}
private void dataGridView1_CellEnter(object sender, DataGridViewCellEventArgs e)
{
Col = dataGridView1.CurrentCellAddress.X;
Row = dataGridView1.CurrentCellAddress.Y;
}
private void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == (int)Keys.Enter)
{
if (Col + 1 < 5)
{
dataGridView1.CurrentCell = dataGridView1[Col + 1, Row];
}
else
{
dataGridView1.Rows.Add();
dataGridView1.CurrentCell = dataGridView1[Col - 4, Row + 1];
}
}
}
}
InformationsquelleAutor user1264708 | 2012-03-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Vergessen CellEnter Ereignis und die Form1_KeyPress Fall auch. Nur Griff die dataGridView1_KeyDown Veranstaltung wie dieser:
Bitte beachten Sie, dass ich änderte den code ein bisschen, und denken Sie daran, das Ereignis behandelte Eigenschaft auf "true", ansonsten wird der Prozess der default-Verhalten.
Prost!
Du kannst mit der dataGridView1_CellEnter Ereignis und fügen Sie dataGridView1.BeginEdit(false);
mein Freund, es gibt ein anderes problem,und können glaube ich 3 Zeilen und 3columns,die ich eingegeben Daten in die row1 und column1 nach gehe ich in die nächste Zeile und Eingabe von Daten sind, wenn ich wieder in der row1 zur Bearbeitung der Daten, die ich drücken Sie die EINGABETASTE springt man zur nächsten Zeile:( es macht mich verrückt.ich will nicht zu springen in die nächste Zeile will ich gehen in die nächste Spalte
Ja, das ist das Standard-Verhalten. Um das zu beheben, überschreiben der ProcessCmdKey-in Ihrer form wie diese: protected override bool ProcessCmdKey(ref-System.Windows.Formen.Nachricht m, System.Windows.Formen.Schlüssel k) { if (m.Msg == 256 && k = = - System.Windows.Formen.Schlüssel.Eingabe) { dataGridView1.EndEdit(); } return base.ProcessCmdKey(ref m, k); }
ohhhh ich bekomme es thxxxxxx alooott!!
InformationsquelleAutor Reinaldo
dies funktioniert für mich
InformationsquelleAutor HaM
Versuchen Sie es mit dieser:
Einfach kopieren und einfügen den code.
Einzige Sache, die Sie haben sollten, raster in Ihrer form.
InformationsquelleAutor Nagarjun G N
Was Sie tun können, ist, behandeln Sie das KeyDown-Ereignis zu prüfen, wenn die return-Taste gedrückt ist, die Veranstaltung abzusagen und zu sagen, die Anwendung mit dem ausgewählten index +1 in Ihrem datagridview:
Probleme zu verhindern Sie sollten auch legen Sie eine Klausel, um zu prüfen, ob es Elemente zur Verfügung, nach der der Benutzer return gedrückt.
InformationsquelleAutor Steven Borges
Mithilfe dieser Lösung:
Glück ...
InformationsquelleAutor Novin.Kh
weil das keyDown-envent wird nicht ausgelöst, wenn die EINGABETASTE drücken Sie auf " datagridview-Zelle das wird besten Dank @Nagarjun
}
InformationsquelleAutor Hisham
Nur bewegen nach rechts beim drücken einer Taste eingeben...
InformationsquelleAutor Luca