[ MatezYU @ 01.07.2009. 14:42 ] @
Imam textbox koji je multiline.
Kako mogu da saznam trenutnu poziciju kursora (ne od misa nego od kursora koji svetli kada kucam) na ekranu? Trebalo bi da dinamicki kreiram komponentu na toj poziciji.
[ Sapphire @ 14.07.2009. 00:43 ] @
http://www.codeguru.com/csharp...rols/custom/article.php/c8145/

Probaj ovo, ako u obzir dolazi unmanaged kod. Works like a charm :)
[ DarkMan @ 14.07.2009. 13:35 ] @
Pozicija kursora u karakterima:
Code:

int line = textBox.GetLineFromCharIndex(textBox.SelectionStart);
Point location = new Point(textBox.SelectionStart - textBox.GetFirstCharIndexFromLine(line), line);


Pozicija kursora u pikselima:
Code:

Point location = textBox.GetPositionFromCharIndex(textBox.SelectionStart);

[ MatezYU @ 15.07.2009. 08:11 ] @
Citat:
DarkMan

Pozicija kursora u pikselima:
Code:

Point location = textBox.GetPositionFromCharIndex(textBox.SelectionStart);


Ovo ne radi, vraca uvek za X i Y vrednosti 0.
[ DarkMan @ 15.07.2009. 13:04 ] @
Sada sam i ja primetio da nece da radi ako je kursor na kraju samog teksta, u tom slucaju SelectionStart se ne moze koristiti kao indeks karaktera jer izlazi iz opsega.
Ako ti nije potrebna tolika preciznost mozes samo umanjiti indeks za jedan i uzeti dobijeni rezultat.
Ako hoces preciznije, znaci samo u slucaju da je kursor na kraju teksta, mozes na dobijenu lokaciju dodati sirinu zadnjeg karaktera (ali do greske moze doci ako je taj karakter prvi u zadnjoj liniji).
Treca solucija bi bila da u metodi, koja ce ti odredjivati lokaciju kursora, napravis kopiju TextBox kontrole sa istom velicinom, isto multiline, isti font a tekst isti kao uneti tekst plus jos jedan space karakter i onda sa tim TextBox-om trazis lokaciju kursora.