-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathForm1.cs
More file actions
75 lines (62 loc) · 2.23 KB
/
Form1.cs
File metadata and controls
75 lines (62 loc) · 2.23 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace tx_sample_line_numbering_gdi
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
textControl1.ButtonBar = buttonBar1;
textControl1.RulerBar = rulerBar1;
textControl1.VerticalRulerBar = rulerBar2;
textControl1.StatusBar = statusBar1;
}
private Brush LINE_COLOR = new SolidBrush(Color.Gray);
private int LINE_START_OFFSET = 500;
private void setLineNumbering()
{
textControl1.Refresh();
Graphics g = textControl1.CreateGraphics();
//iterates all lines
foreach (TXTextControl.Line line in textControl1.Lines)
{
//left position of current line minus offset so that the line number is displayed next to the current line
int left = line.TextBounds.X - LINE_START_OFFSET;
//top position of the current line
int top = line.TextBounds.Top;
//converts the positon of the current line to client coordinates
Point p = textControl1.DocumentToClient(new Point(left, top));
PointF pos = new PointF(p.X , p.Y);
//draws line number to the specified position
g.DrawString(line.Number.ToString() + ":",
new Font(textControl1.Font.Name, textControl1.Font.Size),
LINE_COLOR, pos);
}
}
private void textControl1_Changed(object sender, EventArgs e)
{
setLineNumbering();
}
private void textControl1_InputPositionChanged(object sender, EventArgs e)
{
setLineNumbering();
}
private void textControl1_VScroll(object sender, EventArgs e)
{
setLineNumbering();
}
private void textControl1_HScroll(object sender, EventArgs e)
{
setLineNumbering();
}
}
}