-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathForm1.vb
83 lines (72 loc) · 3.96 KB
/
Form1.vb
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
76
77
78
79
80
81
82
83
'using DevExpress.XtraRichEdit.API.Layout;
'using DevExpress.XtraRichEdit.API.Native;
Imports DevExpress.Portable
Imports DevExpress.XtraRichEdit
Imports System
Imports System.ComponentModel
Imports System.Drawing
Imports System.Windows.Forms
Namespace LineNumberingExample
Public Partial Class Form1
Inherits Form
Public Sub New()
InitializeComponent()
ribbonControl1.SelectedPage = exampleRibbonPage1
AddHandler richEditControl1.DocumentLoaded, AddressOf RichEditControl1_DocumentLoaded
AddHandler richEditControl1.DocumentLayout.DocumentFormatted, AddressOf Me.DocumentLayout_DocumentFormatted
End Sub
Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs)
richEditControl1.LoadDocument("Grimm.docx")
End Sub
Private Sub RichEditControl1_DocumentLoaded(ByVal sender As Object, ByVal e As EventArgs)
richEditControl1.ActiveViewType = RichEditViewType.Simple
#Region "#linenumbering"
richEditControl1.Views.SimpleView.Padding = New PortablePadding(60, 4, 4, 0)
richEditControl1.Views.DraftView.Padding = New PortablePadding(60, 4, 4, 0)
richEditControl1.Views.SimpleView.AllowDisplayLineNumbers = True
richEditControl1.Views.DraftView.AllowDisplayLineNumbers = True
richEditControl1.Document.Sections(0).LineNumbering.Start = 1
richEditControl1.Document.Sections(0).LineNumbering.CountBy = 2
richEditControl1.Document.Sections(0).LineNumbering.Distance = 75F
richEditControl1.Document.Sections(0).LineNumbering.RestartType = API.Native.LineNumberingRestart.Continuous
richEditControl1.Document.CharacterStyles("Line Number").FontName = "Courier"
richEditControl1.Document.CharacterStyles("Line Number").FontSize = 10
richEditControl1.Document.CharacterStyles("Line Number").ForeColor = Color.DarkGray
richEditControl1.Document.CharacterStyles("Line Number").Bold = True
#End Region ' #linenumbering
End Sub
#Region "#BeforePagePaint"
Private Sub RichEditControl1_BeforePagePaint(ByVal sender As Object, ByVal e As BeforePagePaintEventArgs)
If e.CanvasOwnerType = API.Layout.CanvasOwnerType.Printer Then
Return
End If
Dim style As API.Native.CharacterStyle = richEditControl1.Document.CharacterStyles("Line Number")
Dim customPagePainter As MyPagePainter = New MyPagePainter(richEditControl1, SystemColors.Info, style)
customPagePainter.LineNumberPadding = 60
e.Painter = customPagePainter
End Sub
#End Region ' #BeforePagePaint
Private Sub barCheckLineNumberBackColoring_CheckedChanged(ByVal sender As Object, ByVal e As DevExpress.XtraBars.ItemClickEventArgs)
If barCheckLineNumberBackColoring.Checked Then
AddHandler richEditControl1.BeforePagePaint, AddressOf RichEditControl1_BeforePagePaint
Else
RemoveHandler richEditControl1.BeforePagePaint, AddressOf RichEditControl1_BeforePagePaint
End If
richEditControl1.Refresh()
End Sub
#Region "#DocumentFormatted"
Private Sub DocumentLayout_DocumentFormatted(ByVal sender As Object, ByVal e As EventArgs)
BeginInvoke(CType((Sub()
If Visible Then
Dim visitor As MyLayoutVisitor = New MyLayoutVisitor(richEditControl1.Document)
Dim pageCount As Integer = richEditControl1.DocumentLayout.GetFormattedPageCount()
For i As Integer = 0 To pageCount - 1
visitor.Visit(richEditControl1.DocumentLayout.GetPage(i))
Next
resultBarStaticItem.Caption = String.Format("Document has {0} lines", visitor.RowIndex)
End If
End Sub), MethodInvoker))
End Sub
#End Region ' #DocumentFormatted
End Class
End Namespace