Advertisement
Guest User

Untitled

a guest
Jan 12th, 2016
243
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VB.NET 24.36 KB | None | 0 0
  1. ' ***********************************************************************
  2. ' Author   : Elektro
  3. ' Modified : 06-January-2016
  4. ' ***********************************************************************
  5.  
  6. #Region " Public Members Summary "
  7.  
  8. #Region " Constructors "
  9.  
  10. ' New()
  11.  
  12. #End Region
  13.  
  14. #Region " Properties "
  15.  
  16. ' ColumnIndex As Integer
  17. ' Order As SortOrder
  18. ' SortModifier As SortModifiers
  19.  
  20. #End Region
  21.  
  22. #Region " Functions "
  23.  
  24. ' Compare(Object, Object) As Integer : Implements IComparer.Compare
  25.  
  26. #End Region
  27.  
  28. #End Region
  29.  
  30. #Region " Usage Examples "
  31.  
  32. ' Public Class Form1 : Inherits Form
  33. '
  34. '     Friend WithEvents MyListView As New ListView
  35. '     Private sorter As New ListViewColumnSorter
  36. '
  37. '     Public Sub New()
  38. '
  39. '         MyClass.InitializeComponent()
  40. '
  41. '         With Me.MyListView
  42. '             ' Set the sorter, our ListViewColumnSorter.
  43. '             .ListViewItemSorter = sorter
  44. '
  45. '             ' The initial direction for the sorting.
  46. '             .Sorting = SortOrder.Ascending
  47. '
  48. '             ' Set the inivial sort-modifier.
  49. '             sorter.SortModifier = SortModifiers.SortByText
  50. '
  51. '             ' Add some columns.
  52. '             .Columns.Add("Text").Tag = SortModifiers.SortByText
  53. '             .Columns.Add("Numbers").Tag = SortModifiers.SortByNumber
  54. '             .Columns.Add("Dates").Tag = SortModifiers.SortByDate
  55. '
  56. '             ' Adjust the column sizes.
  57. '             For Each col As ColumnHeader In Me.MyListView.Columns
  58. '                 col.Width = 100
  59. '             Next
  60. '
  61. '             ' Add some items.
  62. '             .Items.Add("hello").SubItems.AddRange({"2", "11/11/2000"})
  63. '             .Items.Add("yeehaa!").SubItems.AddRange({"1", "9/9/1999"})
  64. '             .Items.Add("El3ktr0").SubItems.AddRange({"100", "21/08/2014"})
  65. '             .Items.Add("wow").SubItems.AddRange({"10", "11-11-2000"})
  66. '
  67. '             ' Styling things.
  68. '             .Dock = DockStyle.Fill
  69. '             .View = View.Details
  70. '             .FullRowSelect = True
  71. '         End With
  72. '
  73. '         With Me ' Styling things.
  74. '             .Size = New Size(400, 200)
  75. '             .FormBorderStyle = Global.System.Windows.Forms.FormBorderStyle.FixedSingle
  76. '             .MaximizeBox = False
  77. '             .StartPosition = FormStartPosition.CenterScreen
  78. '             .Text = "ListViewColumnSorter TestForm"
  79. '         End With
  80. '
  81. '         Me.Controls.Add(Me.MyListView)
  82. '
  83. '     End Sub
  84. '
  85. '     ''' ----------------------------------------------------------------------------------------------------
  86. '     ''' <summary>
  87. '     ''' Handles the <see cref="ListView.ColumnClick"/> event of the <see cref="MyListView"/> control.
  88. '     ''' </summary>
  89. '     ''' ----------------------------------------------------------------------------------------------------
  90. '     ''' <param name="sender">
  91. '     ''' The source of the event.
  92. '     ''' </param>
  93. '     '''
  94. '     ''' <param name="e">
  95. '     ''' The <see cref="ColumnClickEventArgs"/> instance containing the event data.
  96. '     ''' </param>
  97. '     ''' ----------------------------------------------------------------------------------------------------
  98. '     Private Sub MyListView_ColumnClick(ByVal sender As Object, ByVal e As ColumnClickEventArgs) _
  99. '     Handles MyListView.ColumnClick
  100. '
  101. '         Dim lv As ListView = DirectCast(sender, ListView)
  102. '
  103. '         ' Dinamycaly sets the sort-modifier to sort the column by text, number, or date.
  104. '         sorter.SortModifier = DirectCast(lv.Columns(e.Column).Tag, SortModifiers)
  105. '
  106. '         ' Determine whether clicked column is already the column that is being sorted.
  107. '         If (e.Column = sorter.ColumnIndex) Then
  108. '
  109. '             ' Reverse the current sort direction for this column.
  110. '             If (sorter.Order = SortOrder.Ascending) Then
  111. '                 sorter.Order = SortOrder.Descending
  112. '
  113. '             Else
  114. '                 sorter.Order = SortOrder.Ascending
  115. '
  116. '             End If ' Sorter.Order
  117. '
  118. '         Else
  119. '             ' Set the column number that is to be sorted, default to ascending.
  120. '             sorter.ColumnIndex = e.Column
  121. '             sorter.Order = SortOrder.Ascending
  122. '
  123. '         End If ' e.Column
  124. '
  125. '         ' Perform the sort.
  126. '         lv.Sort()
  127. '
  128. '     End Sub
  129. '
  130. ' End Class
  131.  
  132. #End Region
  133.  
  134. #Region " Option Statements "
  135.  
  136. Option Strict On
  137. Option Explicit On
  138. Option Infer Off
  139.  
  140. #End Region
  141.  
  142. #Region " Imports "
  143.  
  144. Imports System
  145. Imports System.Collections
  146. Imports System.ComponentModel
  147. Imports System.Diagnostics
  148. Imports System.Linq
  149. Imports System.Windows.Forms
  150.  
  151. Imports Elektro.Application.UI.Enums
  152.  
  153. #End Region
  154.  
  155. #Region " ListView's Column Sorter "
  156.  
  157. Namespace Types
  158.  
  159.     ''' ----------------------------------------------------------------------------------------------------
  160.     ''' <summary>
  161.     ''' Performs a sorting operation in a <see cref="System.Windows.Forms.ListView"/>.
  162.     ''' </summary>
  163.     ''' ----------------------------------------------------------------------------------------------------
  164.     ''' <example> This is a code example.
  165.     ''' <code>
  166.     ''' Public Class Form1 : Inherits Form
  167.     '''
  168.     '''     Friend WithEvents MyListView As New ListView
  169.     '''     Private sorter As New ListViewColumnSorter
  170.     '''
  171.     '''     Public Sub New()
  172.     '''
  173.     '''         MyClass.InitializeComponent()
  174.     '''
  175.     '''         With Me.MyListView
  176.     '''             ' Set the sorter, our ListViewColumnSorter.
  177.     '''             .ListViewItemSorter = sorter
  178.     '''
  179.     '''             ' The initial direction for the sorting.
  180.     '''             .Sorting = SortOrder.Ascending
  181.     '''
  182.     '''             ' Set the inivial sort-modifier.
  183.     '''             sorter.SortModifier = SortModifiers.SortByText
  184.     '''
  185.     '''             ' Add some columns.
  186.     '''             .Columns.Add("Text").Tag = SortModifiers.SortByText
  187.     '''             .Columns.Add("Numbers").Tag = SortModifiers.SortByNumber
  188.     '''             .Columns.Add("Dates").Tag = SortModifiers.SortByDate
  189.     '''
  190.     '''             ' Adjust the column sizes.
  191.     '''             For Each col As ColumnHeader In Me.MyListView.Columns
  192.     '''                 col.Width = 100
  193.     '''             Next
  194.     '''
  195.     '''             ' Add some items.
  196.     '''             .Items.Add("hello").SubItems.AddRange({"2", "11/11/2000"})
  197.     '''             .Items.Add("yeehaa!").SubItems.AddRange({"1", "9/9/1999"})
  198.     '''             .Items.Add("El3ktr0").SubItems.AddRange({"100", "21/08/2014"})
  199.     '''             .Items.Add("wow").SubItems.AddRange({"10", "11-11-2000"})
  200.     '''
  201.     '''             ' Styling things.
  202.     '''             .Dock = DockStyle.Fill
  203.     '''             .View = View.Details
  204.     '''             .FullRowSelect = True
  205.     '''         End With
  206.     '''
  207.     '''         With Me ' Styling things.
  208.     '''             .Size = New Size(400, 200)
  209.     '''             .FormBorderStyle = Global.System.Windows.Forms.FormBorderStyle.FixedSingle
  210.     '''             .MaximizeBox = False
  211.     '''             .StartPosition = FormStartPosition.CenterScreen
  212.     '''             .Text = "ListViewColumnSorter TestForm"
  213.     '''         End With
  214.     '''
  215.     '''         Me.Controls.Add(Me.MyListView)
  216.     '''
  217.     '''     End Sub
  218.     '''
  219.     '''     ''' ----------------------------------------------------------------------------------------------------
  220.     '''     ''' &lt;summary&gt;
  221.     '''     ''' Handles the &lt;see cref="ListView.ColumnClick"/&gt; event of the &lt;see cref="MyListView"/&gt; control.
  222.     '''     ''' &lt;/summary&gt;
  223.     '''     ''' ----------------------------------------------------------------------------------------------------
  224.     '''     ''' &lt;param name="sender"&gt;
  225.     '''     ''' The source of the event.
  226.     '''     ''' &lt;/param&gt;
  227.     '''     '''
  228.     '''     ''' &lt;param name="e"&gt;
  229.     '''     ''' The &lt;see cref="ColumnClickEventArgs"/&gt; instance containing the event data.
  230.     '''     ''' &lt;/param&gt;
  231.     '''     ''' ----------------------------------------------------------------------------------------------------
  232.     '''     Private Sub MyListView_ColumnClick(ByVal sender As Object, ByVal e As ColumnClickEventArgs) _
  233.     '''     Handles MyListView.ColumnClick
  234.     '''
  235.     '''         Dim lv As ListView = DirectCast(sender, ListView)
  236.     '''
  237.     '''         ' Dinamycaly sets the sort-modifier to sort the column by text, number, or date.
  238.     '''         sorter.SortModifier = DirectCast(lv.Columns(e.Column).Tag, SortModifiers)
  239.     '''
  240.     '''         ' Determine whether clicked column is already the column that is being sorted.
  241.     '''         If (e.Column = sorter.ColumnIndex) Then
  242.     '''
  243.     '''             ' Reverse the current sort direction for this column.
  244.     '''             If (sorter.Order = SortOrder.Ascending) Then
  245.     '''                 sorter.Order = SortOrder.Descending
  246.     '''
  247.     '''             Else
  248.     '''                 sorter.Order = SortOrder.Ascending
  249.     '''
  250.     '''             End If ' Sorter.Order
  251.     '''
  252.     '''         Else
  253.     '''             ' Set the column number that is to be sorted, default to ascending.
  254.     '''             sorter.ColumnIndex = e.Column
  255.     '''             sorter.Order = SortOrder.Ascending
  256.     '''
  257.     '''         End If ' e.Column
  258.     '''
  259.     '''         ' Perform the sort.
  260.     '''         lv.Sort()
  261.     '''
  262.     '''     End Sub
  263.     '''
  264.     ''' End Class
  265.     ''' </code>
  266.     ''' </example>
  267.     ''' ----------------------------------------------------------------------------------------------------
  268.     Public NotInheritable Class ListViewColumnSorter : Implements IComparer
  269.  
  270. #Region " Private Fields "
  271.  
  272.         ''' ----------------------------------------------------------------------------------------------------
  273.         ''' <summary>
  274.         ''' The comparer instance.
  275.         ''' </summary>
  276.         ''' ----------------------------------------------------------------------------------------------------
  277.         Private comparer As IComparer
  278.  
  279. #End Region
  280.  
  281. #Region " Properties "
  282.  
  283.         ''' ----------------------------------------------------------------------------------------------------
  284.         ''' <summary>
  285.         ''' Gets or sets the index of the column to which to apply the sorting operation (default index is <c>0</c>).
  286.         ''' </summary>
  287.         ''' ----------------------------------------------------------------------------------------------------
  288.         ''' <value>
  289.         ''' The index of the column to which to apply the sorting operation (default index is <c>0</c>).
  290.         ''' </value>
  291.         ''' ----------------------------------------------------------------------------------------------------
  292.         Public Property ColumnIndex As Integer
  293.             <DebuggerStepThrough>
  294.             Get
  295.                 Return Me.columnIndexB
  296.             End Get
  297.             <DebuggerStepThrough>
  298.             Set(ByVal value As Integer)
  299.                 Me.columnIndexB = value
  300.             End Set
  301.         End Property
  302.         ''' ----------------------------------------------------------------------------------------------------
  303.         ''' <summary>
  304.         ''' ( Backing field )
  305.         ''' The index of the column to which to apply the sorting operation (default index is <c>0</c>).
  306.         ''' </summary>
  307.         ''' ----------------------------------------------------------------------------------------------------
  308.         Private columnIndexB As Integer
  309.  
  310.         ''' ----------------------------------------------------------------------------------------------------
  311.         ''' <summary>
  312.         ''' Gets or sets the order of sorting to apply.
  313.         ''' </summary>
  314.         ''' ----------------------------------------------------------------------------------------------------
  315.         ''' <value>
  316.         ''' The order of sorting to apply.
  317.         ''' </value>
  318.         ''' ----------------------------------------------------------------------------------------------------
  319.         Public Property Order As SortOrder
  320.             <DebuggerStepThrough>
  321.             Get
  322.                 Return Me.orderB
  323.             End Get
  324.             <DebuggerStepThrough>
  325.             Set(ByVal value As SortOrder)
  326.                 Me.orderB = value
  327.             End Set
  328.         End Property
  329.         ''' ----------------------------------------------------------------------------------------------------
  330.         ''' <summary>
  331.         ''' ( Backing field )
  332.         ''' The order of sorting to apply.
  333.         ''' </summary>
  334.         ''' ----------------------------------------------------------------------------------------------------
  335.         Private orderB As SortOrder
  336.  
  337.         ''' ----------------------------------------------------------------------------------------------------
  338.         ''' <summary>
  339.         ''' Gets or sets the sort modifier.
  340.         ''' </summary>
  341.         ''' ----------------------------------------------------------------------------------------------------
  342.         ''' <value>
  343.         ''' The sort modifier.
  344.         ''' </value>
  345.         ''' ----------------------------------------------------------------------------------------------------
  346.         Public Property SortModifier As SortModifiers
  347.             <DebuggerStepThrough>
  348.             Get
  349.                 Return Me.sortModifierB
  350.             End Get
  351.             <DebuggerStepThrough>
  352.             Set(ByVal value As SortModifiers)
  353.                 Me.sortModifierB = value
  354.             End Set
  355.         End Property
  356.         ''' ----------------------------------------------------------------------------------------------------
  357.         ''' <summary>
  358.         ''' ( Backing field )
  359.         ''' The sort modifier.
  360.         ''' </summary>
  361.         ''' ----------------------------------------------------------------------------------------------------
  362.         Private sortModifierB As SortModifiers
  363.  
  364. #End Region
  365.  
  366. #Region " Constructors "
  367.  
  368.         ''' ----------------------------------------------------------------------------------------------------
  369.         ''' <summary>
  370.         ''' Initializes a new instance of the <see cref="ListViewColumnSorter"/> class.
  371.         ''' </summary>
  372.         ''' ----------------------------------------------------------------------------------------------------
  373.         <DebuggerNonUserCode>
  374.         Public Sub New()
  375.  
  376.             Me.comparer = New TextComparer
  377.             Me.columnIndexB = 0
  378.             Me.orderB = SortOrder.None
  379.             Me.sortModifierB = SortModifiers.SortByText
  380.  
  381.         End Sub
  382.  
  383. #End Region
  384.  
  385. #Region " Public Methods "
  386.  
  387.         ''' ----------------------------------------------------------------------------------------------------
  388.         ''' <summary>
  389.         ''' Compares two objects and returns a value indicating whether one is less than, equal to, or greater than the other.
  390.         ''' </summary>
  391.         ''' ----------------------------------------------------------------------------------------------------
  392.         ''' <param name="a">
  393.         ''' The first object to compare.
  394.         ''' </param>
  395.         '''
  396.         ''' <param name="b">
  397.         ''' The second object to compare.
  398.         ''' </param>
  399.         ''' ----------------------------------------------------------------------------------------------------
  400.         ''' <returns>
  401.         ''' A signed integer that indicates the relative values of <paramref name="a"/> and <paramref name="b"/>.
  402.         ''' <para></para>
  403.         ''' 0: <paramref name="a"/> equals <paramref name="b"/>.
  404.         ''' <para></para>
  405.         ''' Less than 0: <paramref name="a"/> is less than <paramref name="b"/>.
  406.         ''' <para></para>
  407.         ''' Greater than 0: <paramref name="a"/> is greater than <paramref name="b"/>.
  408.         ''' </returns>
  409.         ''' ----------------------------------------------------------------------------------------------------
  410.         <DebuggerStepThrough>
  411.         Public Function Compare(ByVal a As Object, ByVal b As Object) As Integer Implements IComparer.Compare
  412.  
  413.             Dim compareResult As ComparerResult = ComparerResult.Equals
  414.             Dim lvItemA As ListViewItem
  415.             Dim lvItemB As ListViewItem
  416.  
  417.             ' Cast the objects to be compared
  418.             lvItemA = DirectCast(a, ListViewItem)
  419.             lvItemB = DirectCast(b, ListViewItem)
  420.  
  421.             Dim strA As String = If(Not lvItemA.SubItems.Count <= Me.columnIndexB,
  422.                                     lvItemA.SubItems(Me.columnIndexB).Text,
  423.                                     Nothing)
  424.  
  425.             Dim strB As String = If(Not lvItemB.SubItems.Count <= Me.columnIndexB,
  426.                                     lvItemB.SubItems(Me.columnIndexB).Text,
  427.                                     Nothing)
  428.  
  429.             Dim listViewMain As ListView = lvItemA.ListView
  430.  
  431.             ' Calculate correct return value based on object comparison
  432.             If listViewMain.Sorting <> SortOrder.Ascending AndAlso listViewMain.Sorting <> SortOrder.Descending Then
  433.  
  434.                 ' Return '0' to indicate they are equal
  435.                 Return ComparerResult.Equals
  436.  
  437.             End If
  438.  
  439.             If Me.sortModifierB.Equals(SortModifiers.SortByText) Then
  440.  
  441.                 ' Compare the two items
  442.                 If lvItemA.SubItems.Count <= Me.columnIndexB AndAlso lvItemB.SubItems.Count <= Me.columnIndexB Then
  443.                     compareResult = DirectCast(Me.comparer.Compare(Nothing, Nothing), ComparerResult)
  444.  
  445.                 ElseIf lvItemA.SubItems.Count <= Me.columnIndexB AndAlso lvItemB.SubItems.Count > Me.columnIndexB Then
  446.                     compareResult = DirectCast(Me.comparer.Compare(Nothing, strB), ComparerResult)
  447.  
  448.                 ElseIf lvItemA.SubItems.Count > Me.columnIndexB AndAlso lvItemB.SubItems.Count <= Me.columnIndexB Then
  449.                     compareResult = DirectCast(Me.comparer.Compare(strA, Nothing), ComparerResult)
  450.  
  451.                 Else
  452.                     compareResult = DirectCast(Me.comparer.Compare(strA, strB), ComparerResult)
  453.  
  454.                 End If
  455.  
  456.             Else ' Me.sortModifierB IsNot SortModifiers.SortByText.
  457.  
  458.                 Select Case Me.sortModifierB
  459.  
  460.                     Case SortModifiers.SortByNumber
  461.                         If Me.comparer.GetType <> GetType(NumericComparer) Then
  462.                             Me.comparer = New NumericComparer
  463.                         End If
  464.  
  465.                     Case SortModifiers.SortByDate
  466.                         If Me.comparer.GetType <> GetType(DateComparer) Then
  467.                             Me.comparer = New DateComparer
  468.                         End If
  469.  
  470.                     Case Else
  471.                         If Me.comparer.GetType <> GetType(TextComparer) Then
  472.                             Me.comparer = New TextComparer
  473.                         End If
  474.  
  475.                 End Select
  476.  
  477.                 compareResult = DirectCast(Me.comparer.Compare(strA, strB), ComparerResult)
  478.  
  479.             End If ' Me.sortModifierB.Equals(...)
  480.  
  481.             ' Calculate correct return value based on object comparison.
  482.             If Me.orderB = SortOrder.Ascending Then
  483.                 ' Ascending sort is selected, return normal result of compare operation.
  484.                 Return compareResult
  485.  
  486.             ElseIf Me.orderB = SortOrder.Descending Then
  487.                 ' Descending sort is selected, return negative result of compare operation.
  488.                 Return -CInt(compareResult)
  489.  
  490.             Else
  491.                 ' Return '0' to indicate they are equal.
  492.                 Return 0
  493.  
  494.             End If ' Me.orderB = ...
  495.  
  496.         End Function
  497.  
  498. #End Region
  499.  
  500. #Region " Hidden Base Members "
  501.  
  502.         ''' ----------------------------------------------------------------------------------------------------
  503.         ''' <summary>
  504.         ''' Determines whether the specified <see cref="Object"/> is equal to this instance.
  505.         ''' </summary>
  506.         ''' ----------------------------------------------------------------------------------------------------
  507.         ''' <param name="obj">
  508.         ''' Another object to compare to.
  509.         ''' </param>
  510.         ''' ----------------------------------------------------------------------------------------------------
  511.         ''' <returns>
  512.         ''' <see langword="True"/> if the specified <see cref="Object"/> is equal to this instance; otherwise, <see langword="False"/>.
  513.         ''' </returns>
  514.         ''' ----------------------------------------------------------------------------------------------------
  515.         <EditorBrowsable(EditorBrowsableState.Never)>
  516.         <DebuggerNonUserCode>
  517.         Public Shadows Function Equals(ByVal obj As Object) As Boolean
  518.             Return MyBase.Equals(obj)
  519.         End Function
  520.  
  521.         ''' ----------------------------------------------------------------------------------------------------
  522.         ''' <summary>
  523.         ''' Determines whether the specified <see cref="System.Object"/> instances are the same instance.
  524.         ''' </summary>
  525.         ''' ----------------------------------------------------------------------------------------------------
  526.         ''' <param name="objA">
  527.         ''' The first object to compare.
  528.         ''' </param>
  529.         ''' ----------------------------------------------------------------------------------------------------
  530.         ''' <param name="objB">
  531.         ''' The second object to compare.
  532.         ''' </param>
  533.         ''' ----------------------------------------------------------------------------------------------------
  534.         ''' <returns>
  535.         ''' <see langword="True"/> if <paramref name="objA"/> is the same instance as <paramref name="objB"/>
  536.         ''' or if both are <see langword="Nothing"/>; otherwise, <see langword="False"/>.
  537.         ''' </returns>
  538.         ''' ----------------------------------------------------------------------------------------------------
  539.         <EditorBrowsable(EditorBrowsableState.Never)>
  540.         <DebuggerNonUserCode>
  541.         Public Shadows Function ReferenceEquals(ByVal objA As Object, ByVal objB As Object) As Boolean
  542.             Return Object.ReferenceEquals(objA, objB)
  543.         End Function
  544.  
  545.         ''' ----------------------------------------------------------------------------------------------------
  546.         ''' <summary>
  547.         ''' Gets the <see cref="System.Type"/> of the current instance.
  548.         ''' </summary>
  549.         ''' ----------------------------------------------------------------------------------------------------
  550.         ''' <returns>
  551.         ''' The exact runtime type of the current instance.
  552.         ''' </returns>
  553.         ''' ----------------------------------------------------------------------------------------------------
  554.         <EditorBrowsable(EditorBrowsableState.Never)>
  555.         <DebuggerNonUserCode>
  556.         Public Shadows Function [GetType]() As Type
  557.             Return MyBase.GetType
  558.         End Function
  559.  
  560.         ''' ----------------------------------------------------------------------------------------------------
  561.         ''' <summary>
  562.         ''' Serves as a hash function for a particular type.
  563.         ''' </summary>
  564.         ''' ----------------------------------------------------------------------------------------------------
  565.         ''' <returns>
  566.         ''' A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.
  567.         ''' </returns>
  568.         ''' ----------------------------------------------------------------------------------------------------
  569.         <EditorBrowsable(EditorBrowsableState.Never)>
  570.         <DebuggerNonUserCode>
  571.         Public Shadows Function GetHashCode() As Integer
  572.             Return MyBase.GetHashCode
  573.         End Function
  574.  
  575.         ''' ----------------------------------------------------------------------------------------------------
  576.         ''' <summary>
  577.         ''' Returns a String that represents the current object.
  578.         ''' </summary>
  579.         ''' ----------------------------------------------------------------------------------------------------
  580.         ''' <returns>
  581.         ''' A string that represents the current object.
  582.         ''' </returns>
  583.         ''' ----------------------------------------------------------------------------------------------------
  584.         <EditorBrowsable(EditorBrowsableState.Never)>
  585.         <DebuggerNonUserCode>
  586.         Public Shadows Function ToString() As String
  587.             Return MyBase.ToString
  588.         End Function
  589.  
  590. #End Region
  591.  
  592.     End Class
  593.  
  594. End Namespace
  595.  
  596. #End Region
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement