Mini Kabibi Habibi
Imports System.Collections
Imports DevExpress.XtraGrid.Columns
Imports DevExpress.Utils.Frames
Imports DevExpress.XtraGrid.Views.Grid
Namespace DevExpress.XtraGrid.Demos
Public Class DemosHelper
Public Shared Sub ShowDescriptionForm(ByVal location As System.Drawing.Point, ByVal description As String, ByVal caption As String)
Dim frm As New DevExpress.XtraEditors.XtraForm()
Dim tb As New TextBox()
tb.Multiline = True
tb.Dock = DockStyle.Fill
tb.ScrollBars = ScrollBars.Vertical
tb.Text = description
tb.SelectionLength = 0
frm.Controls.Add(tb)
frm.FormBorderStyle = FormBorderStyle.FixedToolWindow
frm.Text = caption
frm.ShowInTaskbar = False
frm.StartPosition = FormStartPosition.Manual
frm.Location = DevExpress.Utils.ControlUtils.CalcLocation(location, location, frm.Size)
frm.ShowDialog()
End Sub
End Class
Public Class MyGridView
Inherits GridView
Public Shared Function IsCondition(ByVal column As GridColumn) As Boolean
If column Is Nothing Then
Return False
End If
For Each c As StyleFormatCondition In column.View.FormatConditions
If c.Column.Equals(column) Then
Return True
End If
Next c
Return False
End Function
Public Sub SetIcons()
For Each column As GridColumn In Me.Columns
column.ImageIndex = If(IsCondition(column), 0, -1)
Next column
End Sub
Protected Overrides Sub ApplyColumnFilter(ByVal column As DevExpress.XtraGrid.Columns.GridColumn, ByVal listBoxItem As FilterItem)
If listBoxItem Is Nothing Then
Return
End If
If listBoxItem.Text = My.Resources.ConditionsName Then
Dim editor As New ConditionsEditor(column, column.View.GridControl.FindForm())
editor.ShowDialog()
SetIcons()
Else
MyBase.ApplyColumnFilter(column, listBoxItem)
End If
End Sub
End Class
Public Class ItemCondition
Private fcondition As StyleFormatCondition
Public Sub New(ByVal fcondition As StyleFormatCondition)
Me.fcondition = fcondition
End Sub
Public Overrides Function ToString() As String
If fcondition.Condition <> FormatConditionEnum.None Then
If fcondition.Condition = FormatConditionEnum.Between OrElse fcondition.Condition = FormatConditionEnum.NotBetween Then
Return String.Format("{0} {1}, {2}", fcondition.Condition, fcondition.Value1, fcondition.Value2)
Else
Return String.Format("{0} {1}", fcondition.Condition, fcondition.Value1)
End If
End If
Return String.Format(My.Resources.ConditionItemCaption, Index)
End Function
Public ReadOnly Property Index() As Integer
Get
Return fcondition.Column.View.FormatConditions.IndexOf(fcondition)
End Get
End Property
Public ReadOnly Property Condition() As StyleFormatCondition
Get
Return fcondition
End Get
End Property
End Class
Public Class ItemExpressionCondition
Private fcondition As StyleFormatCondition
Public Sub New(ByVal fcondition As StyleFormatCondition)
Me.fcondition = fcondition
End Sub
Public ReadOnly Property IsExpressionCondition() As Boolean
Get
Return fcondition.Condition = FormatConditionEnum.Expression
End Get
End Property
Public Overrides Function ToString() As String
If fcondition.Expression = String.Empty Then
Return String.Format(My.Resources.EmptyConditionCaption, Index)
End If
Return fcondition.Expression
End Function
Public ReadOnly Property Index() As Integer
Get
Return fcondition.Collection.IndexOf(fcondition)
End Get
End Property
Public ReadOnly Property Condition() As StyleFormatCondition
Get
Return fcondition
End Get
End Property
End Class
End Namespace