/
Form1.vb
71 lines (57 loc) · 2.79 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
Imports Microsoft.VisualBasic
Imports System
Imports System.Data
Imports System.Windows.Forms
Imports DevExpress.XtraEditors
Imports DevExpress.XtraRichEdit
Namespace RichEditDataBoundScenario
Partial Public Class Form1
Inherits Form
Public Sub New()
InitializeComponent()
End Sub
Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
' TODO: This line of code loads data into the 'dataSet11.Cars' table. You can move, or remove it, as needed.
Me.carsTableAdapter.Fill(Me.dataSet11.Cars)
' Setup binding only when datasource is filled with data to minimize number of UpdateCommandsState() method calls
richEditControl1.DataBindings.Add(New Binding("RtfText", Me.carsBindingSource, "RtfContent"))
AddHandler dataSet11.Cars.ColumnChanged, AddressOf Cars_ColumnChanged
UpdateCommandsState()
End Sub
Private Sub Cars_ColumnChanged(ByVal sender As Object, ByVal e As DataColumnChangeEventArgs)
If (Not richEditControl1.Modified) Then
e.Row.AcceptChanges()
End If
End Sub
Private Sub dataNavigator1_ButtonClick(ByVal sender As Object, ByVal e As DevExpress.XtraEditors.NavigatorButtonClickEventArgs) Handles dataNavigator1.ButtonClick
If e.Button.ButtonType = NavigatorButtonType.EndEdit Then
richEditControl1.Modified = False
End If
Me.BeginInvoke(New MethodInvoker(AddressOf UpdateCommandsState))
End Sub
Private Sub richEditControl1_ModifiedChanged(ByVal sender As Object, ByVal e As EventArgs) Handles richEditControl1.ModifiedChanged
UpdateCommandsState()
End Sub
Private Sub btnAcceptChanges_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnAcceptChanges.Click
Me.carsTableAdapter.Update(Me.dataSet11.Cars)
Me.dataSet11.Cars.AcceptChanges()
UpdateCommandsState()
End Sub
Private Sub btnRejectChanges_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnRejectChanges.Click
Dim currentDataRow As DataRow = Me.dataSet11.Cars.Rows(carsBindingSource.Position)
currentDataRow.RejectChanges()
UpdateCommandsState()
End Sub
Private Sub UpdateCommandsState()
' Update control level commands state
dataNavigator1.Buttons.CancelEdit.Enabled = richEditControl1.Modified
dataNavigator1.Buttons.EndEdit.Enabled = richEditControl1.Modified
' Update data (in-memory) level commands state
Dim currentDataRow As DataRow = Me.dataSet11.Cars.Rows(carsBindingSource.Position)
btnRejectChanges.Enabled = (currentDataRow.RowState <> DataRowState.Unchanged) AndAlso Not richEditControl1.Modified
btnAcceptChanges.Enabled = Me.dataSet11.HasChanges() AndAlso Not richEditControl1.Modified
' Update info panel
lblCurrentRecordInfo.Text = String.Format("Current Record: {0}{1}", carsBindingSource.Position, (IIf(btnRejectChanges.Enabled, "*", "")))
End Sub
End Class
End Namespace