2013-03-26 3 views
0

내 실수는 무엇입니까? 나는 textbox2에 웹 사이트에 한 단어를 만들고 싶다. 그리고 나의 나쁜 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); 
} 

이 코드에서 나타난 곳마다 내가 targetTextBoxtextBox2를 변경하는 것이 주목.

+0

targetTextBox.GetCharIndexFromPosition (e.Location); 비주얼 스튜디오 targettextbox hapt getchar 폰을 허용하지 않습니다. –

+0

@ kdr_81'targetTextBox'가'GetCharIndexFromPosition' 메소드를 지원하지 않는다고 말하는 것 같습니다. 그러나 .Net 2.0부터이 함수는'TextBox' 클래스에 존재했습니다. 겪고있는 문제점을 명확하게 설명해 주시겠습니까? –

+0

은 이제 지원됩니다 :)하지만 2 가지 질문이 있습니다. tooltip1.SetToolTip (targetTextBox, currentWord); 해당 툴팁 1 또는 툴팁? 그리고 어떻게이 metod라고 부릅니다 : –