Estoy haciendo un editor de texto, resulta que quiero que cuando digito en el richtextbox o el usuario digite en él , en la parte de abajo sea cualquier tecla se muestre el número de columna y fila ACTUALIZADO en sus respectivos labels del control (control Status Strip) , esto lo subrayo ya que cuando presiona la tecla debo presionarla dos veces para que muestre el dato actualizado, en fin pude lograr hacerlo pero no de la mejor manera, ya que cuando lo realizo se muestra pero algo atrasado, digamos que marco la flechita arriba, abajo, enter pero aveces sigue mostrando la línea anterior y no comprendo por que sinceramente.
Les adjunto mi códido este es el método, donde RH es el richtextbox y TS son los labels del Status Strip.
Código
private void actualizar_lineas(){ //Actualiza el número actual de la línea int int_line = 0; int int_column = 0; RH_Editor.DeselectAll(); int_line = 0; TS_Linea.Text = ""; int_line = RH_Editor.GetLineFromCharIndex(RH_Editor.SelectionStart); TS_Linea.Text = int_line.ToString(); Update(); RH_Editor.DeselectAll(); int_column = 0; TS_Columna.Text = ""; int_column = RH_Editor.SelectionStart - RH_Editor.GetFirstCharIndexFromLine(int_line); TS_Columna.Text = int_column.ToString(); Update(); }
Y este es el evento keydown
Código
if (e.KeyData == Keys.Left || e.KeyData == Keys.Up || e.KeyData == Keys.Down || e.KeyData == Keys.Right ){ TS_Linea.Text = ""; TS_Columna.Text = ""; Update(); actualizar_lineas(); } else{ TS_Linea.Text = ""; TS_Columna.Text = ""; Update(); actualizar_lineas(); }
Bien, lo hice así para ver si fuerzo que haga la actualización pero sigue igual, entonces no se que podrá ser.
Les agradecería mucho.