2013-02-28 3 views
1

Я работаю над приложением Windows Forms, которое использует RichtextBox, Menustrip и многие другие элементы управления.Показывать текущую позицию курсора в текущей строке и текущем столбце?

Я проделал определенную работу, но не могу заставить ее работать. Когда мой указатель мыши перемещается в RichTextBox, я хочу изменить положение автоматически, как это делается в простой блокноте.

Мой бит кодирования ....

Я хочу, чтобы это так, когда мой курсор мыши перемещается он изменяет динамическую позицию в моем статусной строке

private void sizeToolStripMenuItem_Click(object sender, EventArgs e) 
{   
    int line = richTextBox1.GetLineFromCharIndex(richTextBox1.SelectionStart); 
    int column = richTextBox1.SelectionStart - richTextBox1.GetFirstCharIndexFromLine(line); 
    toolStripStatusLabel5.Text ="Line"+" "+ line.ToString(); 
    toolStripStatusLabel6.Text = " Column" + " " + line.ToString(); 
    toolStripStatusLabel3.Text= Cursor.Position.ToString(); // where is my mouse cursor at this Time like that x and y cordinate 330,334 
} 

ответ

1

показать вашу линию каждый раз, когда нажимаете клавишу ввода. код упоминается ниже :: ----

private void Key_Down(object sender, KeyEventArgs e) 
{ 
    if (e.KeyData == Keys.Enter) 
    { 
     int line = richTextBox1.GetLineFromCharIndex(richTextBox1.SelectionStart); 
     int column = richTextBox1.SelectionStart - richTextBox1.GetFirstCharIndexFromLine(line); 

     toolStripStatusLabel5.Text = "Line" + " " + line.ToString(); 
     toolStripStatusLabel6.Text = " Column" + " " + column.ToString(); 
     toolStripStatusLabel3.Text = Cursor.Position.ToString(); // where is my mouse cursor at this Time like that x and y cordinate 330,334 
     Update(); 
    } 
} 
1

Вы можете подписаться на RichTextBoxMouseMove событие для обновления метки ToolStrip с текущей позицией мыши

Пример:

private void richTextBox1_MouseMove(object sender, MouseEventArgs e) 
{ 
    toolStripStatusLabel3.Text = string.Format("X={0}, Y={1}", e.X, e.Y); 
} 

Или, если вы хотите, чтобы показать положение reletive к RichTextBox вы можете использовать Location из MouseEventArgs, это возвращает позицию внутри RichTextBox (текстовое поле правого угла = 0,0)

private void richTextBox1_MouseMove(object sender, MouseEventArgs e) 
{ 
    toolStripStatusLabel3.Text = string.Format("X={0}, Y={1}", e.Location.X, e.Location.Y); 
} 
1

Если вы хотите обновить позицию автоматически, вы должны использовать событие MouseMove из richtextbox. Пока вы двигаете мышью, он всегда обновляется. Кроме того, «MouseEventArgs e» из вызова MouseMove может дать вам позицию курсора внутри richtextbox.

+0

Вы можете поделиться информацией о кодировке MouseMove –

1

Я сделал с помощью StackoverFlow и сладко пользовался (программистом). Спасибо за ответ. Мой код:

private void richTextBox1_MouseDown(object sender, MouseEventArgs e) 
    { 

     if (e.Button == MouseButtons.Left) 
     { 
      int line = richTextBox1.GetLineFromCharIndex(richTextBox1.SelectionStart); 
      int column = richTextBox1.SelectionStart - richTextBox1.GetFirstCharIndexFromLine(line); 

      toolStripStatusLabel5.Text = "Line" + " " + line.ToString(); 
      toolStripStatusLabel6.Text = " Column" + " " + line.ToString(); 
      toolStripStatusLabel3.Text = Cursor.Position.ToString(); // where is my mouse cursor at this Time like that x and y cordinate 330,334 
      Update(); 

     } 

    } 
Смежные вопросы