Certamenteecco qua:
Con queste 2 funzioni (Che ho inserito nella mia custom RTB) ricavo il testo della linea "selezionata" dall'inizio alla posizione del cursore di scrittura:
Dopo di che grazie a questa (Che ho inserito in un form) ottengo la dimensione del testo:codice:public string getCurrentLine(string text, int selstart) { string r2 = ""; int x = selstart; r2 = text.Substring(0, x); int l = r2.LastIndexOf("\n") + 1; text = r2.Substring(l); ; l = text.IndexOf("\n"); if (l > -1) text = text.Substring(0, l); return text; } public int getCurrentLineIndex() { string lineText = this.getCurrentLine(this.Text, this.SelectionStart); int lineCount = 0; foreach (string line in this.Lines) { lineCount += 1; if (line.StartsWith(lineText)) { return lineCount; } } return 0; }
codice:int lineCount = r.getCurrentLineIndex(); SizeF size; using (System.Drawing.Graphics graphics = System.Drawing.Graphics.FromImage(new Bitmap(1, 1))) { size = graphics.MeasureString(Charz, r.Font); } l.Location = new Point((int)size.Width, 11 * lineCount + 3);

ecco qua:
Rispondi quotando