2013-03-26 3 views
0

В чем моя ошибка? Я хочу сделать слово на веб-сайте в текстовое поле. И извините, из-за моего плохого eng. :)Получите слово под курсором, что такое моя ошибка?

private void txtHoverWord_MouseMove(object sender, MouseEventArgs e){ 
    if (!(sender is TextBox)) return; 
    var targetTextBox = sender as TextBox; 
    if (targetTextBox.TextLength < 1) return; 

    var currentTextIndex = textBox2.GetCharIndexFromPosition(e.Location); 
    var wordRegex = new Regex(@"(\w+)"); 
    var words = wordRegex.Matches(textBox2.Text); 
    if (words.Count < 1) return; 

    var currentWord = string.Empty; 
    for (var i = words.Count - 1; i >= 0; i--) 
    { 
     if (words[i].Index <= currentTextIndex) 
     { 
      currentWord = words[i].Value; 
      break; 
     } 
    } 

    if (currentWord == string.Empty) return; 
    toolTip1.SetToolTip(textBox2, currentWord); 
} 
+1

Вы получаете какую-либо ошибку, исключение? _Что такое моя ошибка? _ Не является хорошим способом спросить. –

ответ

0

Я считаю, что вы, возможно, непреднамеренно указано textBox2 вместо targetTextBox в вашем коде.

Попробуйте изменить его на следующее:

private void txtHoverWord_MouseMove(object sender, MouseEventArgs e) 
{ 
    if (!(sender is TextBox)) return; 
    var targetTextBox = sender as TextBox; 
    if (targetTextBox.TextLength < 1) return; 

    var currentTextIndex = targetTextBox.GetCharIndexFromPosition(e.Location); 
    var wordRegex = new Regex(@"(\w+)"); 
    var words = wordRegex.Matches(targetTextBox.Text); 
    if (words.Count < 1) return; 

    var currentWord = string.Empty; 
    for (var i = words.Count - 1; i >= 0; i--) 
    { 
     if (words[i].Index <= currentTextIndex) 
     { 
      currentWord = words[i].Value; 
      break; 
     } 
    } 

    if (currentWord == string.Empty) return; 
    tooltip1.SetToolTip(targetTextBox, currentWord); 
} 

Отмечая, что я изменил textBox2 в targetTextBox, где он появился в вашем коде.

+0

targetTextBox.GetCharIndexFromPosition (e.Location); не позволяйте visual studio targettextbox havent getchar fonc. –

+0

@ kdr_81 Я думаю, вы говорите, что 'targetTextBox' не поддерживает метод GetCharIndexFromPosition. Однако, начиная с .Net 2.0, эта функция существовала в классе 'TextBox'. Не могли бы вы попытаться выяснить, в чем проблема, которую вы испытываете? –

+0

сейчас поддержка :) но не работает У меня есть 2 вопроса tooltip1.SetToolTip (targetTextBox, currentWord); его tooltip1 или подсказку? И как я называю этот метод :) –

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