mirror of
https://github.com/mRemoteNG/mRemoteNG.git
synced 2026-02-26 03:58:45 +08:00
1530 lines
80 KiB
VB.net
1530 lines
80 KiB
VB.net
Imports mRemoteNG.My
|
|
Imports mRemoteNG.Connection.Protocol
|
|
Imports WeifenLuo.WinFormsUI.Docking
|
|
Imports System.Net.NetworkInformation
|
|
Imports mRemoteNG.App.Runtime
|
|
|
|
Namespace UI
|
|
Namespace Window
|
|
Public Class Config
|
|
Inherits UI.Window.Base
|
|
|
|
|
|
#Region "Form Init"
|
|
Friend WithEvents btnShowProperties As System.Windows.Forms.ToolStripButton
|
|
Friend WithEvents btnShowDefaultProperties As System.Windows.Forms.ToolStripButton
|
|
Friend WithEvents btnShowInheritance As System.Windows.Forms.ToolStripButton
|
|
Friend WithEvents btnShowDefaultInheritance As System.Windows.Forms.ToolStripButton
|
|
Friend WithEvents btnIcon As System.Windows.Forms.ToolStripButton
|
|
Friend WithEvents btnHostStatus As System.Windows.Forms.ToolStripButton
|
|
Friend WithEvents cMenIcons As System.Windows.Forms.ContextMenuStrip
|
|
Private components As System.ComponentModel.IContainer
|
|
Friend WithEvents propertyGridContextMenu As System.Windows.Forms.ContextMenuStrip
|
|
Friend WithEvents propertyGridContextMenuShowHelpText As System.Windows.Forms.ToolStripMenuItem
|
|
Friend WithEvents pGrid As Azuria.Common.Controls.FilteredPropertyGrid
|
|
Private Sub InitializeComponent()
|
|
Me.components = New System.ComponentModel.Container()
|
|
Me.pGrid = New Azuria.Common.Controls.FilteredPropertyGrid()
|
|
Me.btnShowInheritance = New System.Windows.Forms.ToolStripButton()
|
|
Me.btnShowDefaultInheritance = New System.Windows.Forms.ToolStripButton()
|
|
Me.btnShowProperties = New System.Windows.Forms.ToolStripButton()
|
|
Me.btnShowDefaultProperties = New System.Windows.Forms.ToolStripButton()
|
|
Me.btnIcon = New System.Windows.Forms.ToolStripButton()
|
|
Me.btnHostStatus = New System.Windows.Forms.ToolStripButton()
|
|
Me.cMenIcons = New System.Windows.Forms.ContextMenuStrip(Me.components)
|
|
Me.propertyGridContextMenu = New System.Windows.Forms.ContextMenuStrip(Me.components)
|
|
Me.propertyGridContextMenuShowHelpText = New System.Windows.Forms.ToolStripMenuItem()
|
|
Me.propertyGridContextMenu.SuspendLayout()
|
|
Me.SuspendLayout()
|
|
'
|
|
'pGrid
|
|
'
|
|
Me.pGrid.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _
|
|
Or System.Windows.Forms.AnchorStyles.Left) _
|
|
Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
|
|
Me.pGrid.BrowsableProperties = Nothing
|
|
Me.pGrid.ContextMenuStrip = Me.propertyGridContextMenu
|
|
Me.pGrid.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
|
|
Me.pGrid.HiddenAttributes = Nothing
|
|
Me.pGrid.HiddenProperties = Nothing
|
|
Me.pGrid.Location = New System.Drawing.Point(0, 0)
|
|
Me.pGrid.Name = "pGrid"
|
|
Me.pGrid.PropertySort = System.Windows.Forms.PropertySort.Categorized
|
|
Me.pGrid.Size = New System.Drawing.Size(226, 530)
|
|
Me.pGrid.TabIndex = 0
|
|
Me.pGrid.UseCompatibleTextRendering = True
|
|
'
|
|
'btnShowInheritance
|
|
'
|
|
Me.btnShowInheritance.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image
|
|
Me.btnShowInheritance.Image = Global.mRemoteNG.My.Resources.Resources.Inheritance
|
|
Me.btnShowInheritance.ImageTransparentColor = System.Drawing.Color.Magenta
|
|
Me.btnShowInheritance.Name = "btnShowInheritance"
|
|
Me.btnShowInheritance.Size = New System.Drawing.Size(23, 22)
|
|
Me.btnShowInheritance.Text = "Inheritance"
|
|
'
|
|
'btnShowDefaultInheritance
|
|
'
|
|
Me.btnShowDefaultInheritance.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image
|
|
Me.btnShowDefaultInheritance.Image = Global.mRemoteNG.My.Resources.Resources.Inheritance_Default
|
|
Me.btnShowDefaultInheritance.ImageTransparentColor = System.Drawing.Color.Magenta
|
|
Me.btnShowDefaultInheritance.Name = "btnShowDefaultInheritance"
|
|
Me.btnShowDefaultInheritance.Size = New System.Drawing.Size(23, 22)
|
|
Me.btnShowDefaultInheritance.Text = "Default Inheritance"
|
|
'
|
|
'btnShowProperties
|
|
'
|
|
Me.btnShowProperties.Checked = True
|
|
Me.btnShowProperties.CheckState = System.Windows.Forms.CheckState.Checked
|
|
Me.btnShowProperties.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image
|
|
Me.btnShowProperties.Image = Global.mRemoteNG.My.Resources.Resources.Properties
|
|
Me.btnShowProperties.ImageTransparentColor = System.Drawing.Color.Magenta
|
|
Me.btnShowProperties.Name = "btnShowProperties"
|
|
Me.btnShowProperties.Size = New System.Drawing.Size(23, 22)
|
|
Me.btnShowProperties.Text = "Properties"
|
|
'
|
|
'btnShowDefaultProperties
|
|
'
|
|
Me.btnShowDefaultProperties.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image
|
|
Me.btnShowDefaultProperties.Image = Global.mRemoteNG.My.Resources.Resources.Properties_Default
|
|
Me.btnShowDefaultProperties.ImageTransparentColor = System.Drawing.Color.Magenta
|
|
Me.btnShowDefaultProperties.Name = "btnShowDefaultProperties"
|
|
Me.btnShowDefaultProperties.Size = New System.Drawing.Size(23, 22)
|
|
Me.btnShowDefaultProperties.Text = "Default Properties"
|
|
'
|
|
'btnIcon
|
|
'
|
|
Me.btnIcon.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right
|
|
Me.btnIcon.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image
|
|
Me.btnIcon.ImageTransparentColor = System.Drawing.Color.Magenta
|
|
Me.btnIcon.Name = "btnIcon"
|
|
Me.btnIcon.Size = New System.Drawing.Size(23, 22)
|
|
Me.btnIcon.Text = "Icon"
|
|
'
|
|
'btnHostStatus
|
|
'
|
|
Me.btnHostStatus.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right
|
|
Me.btnHostStatus.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image
|
|
Me.btnHostStatus.Image = Global.mRemoteNG.My.Resources.Resources.HostStatus_Check
|
|
Me.btnHostStatus.ImageTransparentColor = System.Drawing.Color.Magenta
|
|
Me.btnHostStatus.Name = "btnHostStatus"
|
|
Me.btnHostStatus.Size = New System.Drawing.Size(23, 22)
|
|
Me.btnHostStatus.Tag = "checking"
|
|
Me.btnHostStatus.Text = "Status"
|
|
'
|
|
'cMenIcons
|
|
'
|
|
Me.cMenIcons.Name = "cMenIcons"
|
|
Me.cMenIcons.Size = New System.Drawing.Size(61, 4)
|
|
'
|
|
'propertyGridContextMenu
|
|
'
|
|
Me.propertyGridContextMenu.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.propertyGridContextMenuShowHelpText})
|
|
Me.propertyGridContextMenu.Name = "propertyGridContextMenu"
|
|
Me.propertyGridContextMenu.Size = New System.Drawing.Size(157, 26)
|
|
'
|
|
'propertyGridContextMenuShowHelpText
|
|
'
|
|
Me.propertyGridContextMenuShowHelpText.Name = "ContextMenuShowHelpText"
|
|
Me.propertyGridContextMenuShowHelpText.Size = New System.Drawing.Size(156, 22)
|
|
Me.propertyGridContextMenuShowHelpText.Text = "&Show Help Text"
|
|
'
|
|
'Config
|
|
'
|
|
Me.ClientSize = New System.Drawing.Size(226, 530)
|
|
Me.Controls.Add(Me.pGrid)
|
|
Me.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
|
|
Me.HideOnClose = True
|
|
Me.Icon = Global.mRemoteNG.My.Resources.Resources.Config_Icon
|
|
Me.Name = "Config"
|
|
Me.TabText = "Config"
|
|
Me.Text = "Config"
|
|
Me.propertyGridContextMenu.ResumeLayout(False)
|
|
Me.ResumeLayout(False)
|
|
|
|
End Sub
|
|
#End Region
|
|
|
|
#Region "Private Properties"
|
|
Private ConfigLoading As Boolean = False
|
|
#End Region
|
|
|
|
#Region "Public Properties"
|
|
Public Property PropertiesVisible() As Boolean
|
|
Get
|
|
If Me.btnShowProperties.Checked Then
|
|
Return True
|
|
Else
|
|
Return False
|
|
End If
|
|
End Get
|
|
Set(ByVal value As Boolean)
|
|
Me.btnShowProperties.Checked = value
|
|
|
|
If value = True Then
|
|
Me.btnShowInheritance.Checked = False
|
|
Me.btnShowDefaultInheritance.Checked = False
|
|
Me.btnShowDefaultProperties.Checked = False
|
|
End If
|
|
End Set
|
|
End Property
|
|
|
|
Public Property InheritanceVisible() As Boolean
|
|
Get
|
|
If Me.btnShowInheritance.Checked Then
|
|
Return True
|
|
Else
|
|
Return False
|
|
End If
|
|
End Get
|
|
Set(ByVal value As Boolean)
|
|
Me.btnShowInheritance.Checked = value
|
|
|
|
If value = True Then
|
|
Me.btnShowProperties.Checked = False
|
|
Me.btnShowDefaultInheritance.Checked = False
|
|
Me.btnShowDefaultProperties.Checked = False
|
|
End If
|
|
End Set
|
|
End Property
|
|
|
|
Public Property DefaultPropertiesVisible() As Boolean
|
|
Get
|
|
If Me.btnShowDefaultProperties.Checked Then
|
|
Return True
|
|
Else
|
|
Return False
|
|
End If
|
|
End Get
|
|
Set(ByVal value As Boolean)
|
|
Me.btnShowDefaultProperties.Checked = value
|
|
|
|
If value = True Then
|
|
Me.btnShowProperties.Checked = False
|
|
Me.btnShowDefaultInheritance.Checked = False
|
|
Me.btnShowInheritance.Checked = False
|
|
End If
|
|
End Set
|
|
End Property
|
|
|
|
Public Property DefaultInheritanceVisible() As Boolean
|
|
Get
|
|
If Me.btnShowDefaultInheritance.Checked Then
|
|
Return True
|
|
Else
|
|
Return False
|
|
End If
|
|
End Get
|
|
Set(ByVal value As Boolean)
|
|
Me.btnShowDefaultInheritance.Checked = value
|
|
|
|
If value = True Then
|
|
Me.btnShowProperties.Checked = False
|
|
Me.btnShowDefaultProperties.Checked = False
|
|
Me.btnShowInheritance.Checked = False
|
|
End If
|
|
End Set
|
|
End Property
|
|
#End Region
|
|
|
|
#Region "Public Methods"
|
|
Public Sub New(ByVal Panel As DockContent)
|
|
Me.WindowType = Type.Config
|
|
Me.DockPnl = Panel
|
|
Me.InitializeComponent()
|
|
End Sub
|
|
|
|
' Main form handle command key events
|
|
' Adapted from http://kiwigis.blogspot.com/2009/05/adding-tab-key-support-to-propertygrid.html
|
|
Protected Overrides Function ProcessCmdKey(ByRef msg As System.Windows.Forms.Message, ByVal keyData As System.Windows.Forms.Keys) As Boolean
|
|
If (keyData And Keys.KeyCode) = Keys.Tab Then
|
|
Dim selectedItem As GridItem = pGrid.SelectedGridItem
|
|
Dim gridRoot As GridItem = selectedItem
|
|
While gridRoot.GridItemType <> GridItemType.Root
|
|
gridRoot = gridRoot.Parent
|
|
End While
|
|
|
|
Dim gridItems As New List(Of GridItem)
|
|
FindChildGridItems(gridRoot, gridItems)
|
|
|
|
If Not ContainsGridItemProperty(gridItems) Then Return True
|
|
|
|
Dim newItem As GridItem = selectedItem
|
|
|
|
If keyData = (Keys.Tab Or Keys.Shift) Then
|
|
newItem = FindPreviousGridItemProperty(gridItems, selectedItem)
|
|
ElseIf keyData = Keys.Tab Then
|
|
newItem = FindNextGridItemProperty(gridItems, selectedItem)
|
|
End If
|
|
|
|
pGrid.SelectedGridItem = newItem
|
|
|
|
Return True ' Handled
|
|
Else
|
|
Return MyBase.ProcessCmdKey(msg, keyData)
|
|
End If
|
|
End Function
|
|
|
|
Private Sub FindChildGridItems(item As GridItem, ByRef gridItems As List(Of GridItem))
|
|
gridItems.Add(item)
|
|
|
|
If Not item.Expandable Or item.Expanded Then
|
|
For Each child As GridItem In item.GridItems
|
|
FindChildGridItems(child, gridItems)
|
|
Next
|
|
End If
|
|
End Sub
|
|
|
|
Private Function ContainsGridItemProperty(gridItems As List(Of GridItem)) As Boolean
|
|
For Each item As GridItem In gridItems
|
|
If item.GridItemType = GridItemType.Property Then Return True
|
|
Next
|
|
Return False
|
|
End Function
|
|
|
|
Private Function FindPreviousGridItemProperty(gridItems As List(Of GridItem), startItem As GridItem) As GridItem
|
|
If gridItems.Count = 0 Then Return Nothing
|
|
If startItem Is Nothing Then Return Nothing
|
|
|
|
Dim startIndex As Integer = gridItems.IndexOf(startItem)
|
|
|
|
If startItem.GridItemType = GridItemType.Property Then
|
|
startIndex = startIndex - 1
|
|
If startIndex < 0 Then startIndex = gridItems.Count - 1
|
|
End If
|
|
|
|
Dim previousIndex As Integer = 0
|
|
Dim previousIndexValid As Boolean = False
|
|
For index As Integer = startIndex To 0 Step -1
|
|
If gridItems(index).GridItemType = GridItemType.Property Then
|
|
previousIndex = index
|
|
previousIndexValid = True
|
|
Exit For
|
|
End If
|
|
Next
|
|
|
|
If previousIndexValid Then Return gridItems(previousIndex)
|
|
|
|
For index As Integer = gridItems.Count - 1 To startIndex + 1 Step -1
|
|
If gridItems(index).GridItemType = GridItemType.Property Then
|
|
previousIndex = index
|
|
previousIndexValid = True
|
|
Exit For
|
|
End If
|
|
Next
|
|
|
|
If Not previousIndexValid Then Return Nothing
|
|
|
|
Return gridItems(previousIndex)
|
|
End Function
|
|
|
|
Private Function FindNextGridItemProperty(gridItems As List(Of GridItem), startItem As GridItem) As GridItem
|
|
If gridItems.Count = 0 Then Return Nothing
|
|
If startItem Is Nothing Then Return Nothing
|
|
|
|
Dim startIndex As Integer = gridItems.IndexOf(startItem)
|
|
|
|
If startItem.GridItemType = GridItemType.Property Then
|
|
startIndex = startIndex + 1
|
|
If startIndex >= gridItems.Count Then startIndex = 0
|
|
End If
|
|
|
|
Dim nextIndex As Integer = 0
|
|
Dim nextIndexValid As Boolean = False
|
|
For index As Integer = startIndex To gridItems.Count - 1
|
|
If gridItems(index).GridItemType = GridItemType.Property Then
|
|
nextIndex = index
|
|
nextIndexValid = True
|
|
Exit For
|
|
End If
|
|
Next
|
|
|
|
If nextIndexValid Then Return gridItems(nextIndex)
|
|
|
|
For index As Integer = 0 To startIndex - 1
|
|
If gridItems(index).GridItemType = GridItemType.Property Then
|
|
nextIndex = index
|
|
nextIndexValid = True
|
|
Exit For
|
|
End If
|
|
Next
|
|
|
|
If Not nextIndexValid Then Return Nothing
|
|
|
|
Return gridItems(nextIndex)
|
|
End Function
|
|
|
|
Public Sub SetPropertyGridObject(ByVal Obj As Object)
|
|
Try
|
|
Me.btnShowProperties.Enabled = False
|
|
Me.btnShowInheritance.Enabled = False
|
|
Me.btnShowDefaultProperties.Enabled = False
|
|
Me.btnShowDefaultInheritance.Enabled = False
|
|
Me.btnIcon.Enabled = False
|
|
Me.btnHostStatus.Enabled = False
|
|
|
|
Me.btnIcon.Image = Nothing
|
|
|
|
If TypeOf Obj Is mRemoteNG.Connection.Info Then 'CONNECTION INFO
|
|
If TryCast(Obj, mRemoteNG.Connection.Info).IsContainer = False Then 'NO CONTAINER
|
|
If Me.PropertiesVisible Then 'Properties selected
|
|
Me.pGrid.SelectedObject = Obj
|
|
|
|
Me.btnShowProperties.Enabled = True
|
|
If TryCast(Obj, mRemoteNG.Connection.Info).Parent IsNot Nothing Then
|
|
Me.btnShowInheritance.Enabled = True
|
|
Else
|
|
Me.btnShowInheritance.Enabled = False
|
|
End If
|
|
Me.btnShowDefaultProperties.Enabled = False
|
|
Me.btnShowDefaultInheritance.Enabled = False
|
|
btnIcon.Enabled = True
|
|
Me.btnHostStatus.Enabled = True
|
|
ElseIf Me.DefaultPropertiesVisible Then 'Defaults selected
|
|
Me.pGrid.SelectedObject = Obj
|
|
|
|
If TryCast(Obj, mRemoteNG.Connection.Info).IsDefault Then 'Is the default connection
|
|
Me.btnShowProperties.Enabled = True
|
|
Me.btnShowInheritance.Enabled = False
|
|
Me.btnShowDefaultProperties.Enabled = True
|
|
Me.btnShowDefaultInheritance.Enabled = True
|
|
Me.btnIcon.Enabled = True
|
|
Me.btnHostStatus.Enabled = False
|
|
Else 'is not the default connection
|
|
Me.btnShowProperties.Enabled = True
|
|
Me.btnShowInheritance.Enabled = True
|
|
Me.btnShowDefaultProperties.Enabled = False
|
|
Me.btnShowDefaultInheritance.Enabled = False
|
|
Me.btnIcon.Enabled = True
|
|
Me.btnHostStatus.Enabled = True
|
|
|
|
Me.PropertiesVisible = True
|
|
End If
|
|
ElseIf Me.InheritanceVisible Then 'Inheritance selected
|
|
Me.pGrid.SelectedObject = TryCast(Obj, mRemoteNG.Connection.Info).Inherit
|
|
|
|
Me.btnShowProperties.Enabled = True
|
|
Me.btnShowInheritance.Enabled = True
|
|
Me.btnShowDefaultProperties.Enabled = False
|
|
Me.btnShowDefaultInheritance.Enabled = False
|
|
Me.btnIcon.Enabled = True
|
|
Me.btnHostStatus.Enabled = True
|
|
ElseIf Me.DefaultInheritanceVisible Then 'Default Inhertiance selected
|
|
pGrid.SelectedObject = Obj
|
|
|
|
Me.btnShowProperties.Enabled = True
|
|
Me.btnShowInheritance.Enabled = True
|
|
Me.btnShowDefaultProperties.Enabled = False
|
|
Me.btnShowDefaultInheritance.Enabled = False
|
|
Me.btnIcon.Enabled = True
|
|
Me.btnHostStatus.Enabled = True
|
|
|
|
Me.PropertiesVisible = True
|
|
End If
|
|
ElseIf TryCast(Obj, mRemoteNG.Connection.Info).IsContainer Then 'CONTAINER
|
|
Me.pGrid.SelectedObject = Obj
|
|
|
|
Me.btnShowProperties.Enabled = True
|
|
If TryCast(TryCast(Obj, mRemoteNG.Connection.Info).Parent, mRemoteNG.Container.Info).Parent IsNot Nothing Then
|
|
Me.btnShowInheritance.Enabled = True
|
|
Else
|
|
Me.btnShowInheritance.Enabled = False
|
|
End If
|
|
Me.btnShowDefaultProperties.Enabled = False
|
|
Me.btnShowDefaultInheritance.Enabled = False
|
|
Me.btnIcon.Enabled = True
|
|
Me.btnHostStatus.Enabled = False
|
|
|
|
Me.PropertiesVisible = True
|
|
End If
|
|
|
|
Dim conIcon As Icon = mRemoteNG.Connection.Icon.FromString(TryCast(Obj, mRemoteNG.Connection.Info).Icon)
|
|
If conIcon IsNot Nothing Then
|
|
Me.btnIcon.Image = conIcon.ToBitmap
|
|
End If
|
|
ElseIf TypeOf Obj Is Root.Info Then 'ROOT
|
|
Dim rootInfo As Root.Info = CType(Obj, Root.Info)
|
|
Select Case rootInfo.Type
|
|
Case Root.Info.RootType.Connection
|
|
PropertiesVisible = True
|
|
DefaultPropertiesVisible = False
|
|
btnShowProperties.Enabled = True
|
|
btnShowInheritance.Enabled = False
|
|
btnShowDefaultProperties.Enabled = True
|
|
btnShowDefaultInheritance.Enabled = True
|
|
btnIcon.Enabled = False
|
|
btnHostStatus.Enabled = False
|
|
Case Root.Info.RootType.Credential
|
|
Throw New NotImplementedException
|
|
Case Root.Info.RootType.PuttySessions
|
|
PropertiesVisible = True
|
|
DefaultPropertiesVisible = False
|
|
btnShowProperties.Enabled = True
|
|
btnShowInheritance.Enabled = False
|
|
btnShowDefaultProperties.Enabled = False
|
|
btnShowDefaultInheritance.Enabled = False
|
|
btnIcon.Enabled = False
|
|
btnHostStatus.Enabled = False
|
|
End Select
|
|
pGrid.SelectedObject = Obj
|
|
ElseIf TypeOf Obj Is mRemoteNG.Connection.Info.Inheritance Then 'INHERITANCE
|
|
Me.pGrid.SelectedObject = Obj
|
|
|
|
If Me.InheritanceVisible Then
|
|
Me.InheritanceVisible = True
|
|
Me.btnShowProperties.Enabled = True
|
|
Me.btnShowInheritance.Enabled = True
|
|
Me.btnShowDefaultProperties.Enabled = False
|
|
Me.btnShowDefaultInheritance.Enabled = False
|
|
Me.btnIcon.Enabled = True
|
|
Me.btnHostStatus.Enabled = Not TryCast(TryCast(Obj, mRemoteNG.Connection.Info.Inheritance).Parent, mRemoteNG.Connection.Info).IsContainer
|
|
|
|
Me.InheritanceVisible = True
|
|
|
|
Dim conIcon As Icon = mRemoteNG.Connection.Icon.FromString(TryCast(TryCast(Obj, mRemoteNG.Connection.Info.Inheritance).Parent, mRemoteNG.Connection.Info).Icon)
|
|
If conIcon IsNot Nothing Then
|
|
Me.btnIcon.Image = conIcon.ToBitmap
|
|
End If
|
|
ElseIf Me.DefaultInheritanceVisible Then
|
|
Me.btnShowProperties.Enabled = True
|
|
Me.btnShowInheritance.Enabled = False
|
|
Me.btnShowDefaultProperties.Enabled = True
|
|
Me.btnShowDefaultInheritance.Enabled = True
|
|
Me.btnIcon.Enabled = False
|
|
Me.btnHostStatus.Enabled = False
|
|
|
|
Me.DefaultInheritanceVisible = True
|
|
End If
|
|
|
|
End If
|
|
|
|
Me.ShowHideGridItems()
|
|
Me.SetHostStatus(Obj)
|
|
Catch ex As Exception
|
|
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strConfigPropertyGridObjectFailed & vbNewLine & ex.Message, True)
|
|
End Try
|
|
End Sub
|
|
|
|
Public Sub pGrid_SelectedObjectChanged()
|
|
Me.ShowHideGridItems()
|
|
End Sub
|
|
#End Region
|
|
|
|
#Region "Private Methods"
|
|
Private Sub ApplyLanguage()
|
|
btnShowInheritance.Text = My.Language.strButtonInheritance
|
|
btnShowDefaultInheritance.Text = My.Language.strButtonDefaultInheritance
|
|
btnShowProperties.Text = My.Language.strButtonProperties
|
|
btnShowDefaultProperties.Text = My.Language.strButtonDefaultProperties
|
|
btnIcon.Text = My.Language.strButtonIcon
|
|
btnHostStatus.Text = My.Language.strStatus
|
|
Text = My.Language.strMenuConfig
|
|
TabText = My.Language.strMenuConfig
|
|
propertyGridContextMenuShowHelpText.Text = Language.strMenuShowHelpText
|
|
End Sub
|
|
|
|
Private Sub ApplyTheme()
|
|
With Themes.ThemeManager.ActiveTheme
|
|
pGrid.BackColor = .ToolbarBackgroundColor
|
|
pGrid.ForeColor = .ToolbarTextColor
|
|
pGrid.ViewBackColor = .ConfigPanelBackgroundColor
|
|
pGrid.ViewForeColor = .ConfigPanelTextColor
|
|
pGrid.LineColor = .ConfigPanelGridLineColor
|
|
pGrid.HelpBackColor = .ConfigPanelHelpBackgroundColor
|
|
pGrid.HelpForeColor = .ConfigPanelHelpTextColor
|
|
pGrid.CategoryForeColor = .ConfigPanelCategoryTextColor
|
|
End With
|
|
End Sub
|
|
|
|
Private _originalPropertyGridToolStripItemCountValid As Boolean
|
|
Private _originalPropertyGridToolStripItemCount As Integer
|
|
|
|
Private Sub AddToolStripItems()
|
|
Try
|
|
Dim customToolStrip As ToolStrip = New ToolStrip
|
|
customToolStrip.Items.Add(btnShowProperties)
|
|
customToolStrip.Items.Add(btnShowInheritance)
|
|
customToolStrip.Items.Add(btnShowDefaultProperties)
|
|
customToolStrip.Items.Add(btnShowDefaultInheritance)
|
|
customToolStrip.Items.Add(btnHostStatus)
|
|
customToolStrip.Items.Add(btnIcon)
|
|
customToolStrip.Show()
|
|
|
|
Dim propertyGridToolStrip As New ToolStrip
|
|
|
|
Dim toolStrip As ToolStrip = Nothing
|
|
For Each control As System.Windows.Forms.Control In pGrid.Controls
|
|
toolStrip = TryCast(control, ToolStrip)
|
|
|
|
If toolStrip IsNot Nothing Then
|
|
propertyGridToolStrip = toolStrip
|
|
Exit For
|
|
End If
|
|
Next
|
|
|
|
If toolStrip Is Nothing Then
|
|
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, Language.strCouldNotFindToolStripInFilteredPropertyGrid, True)
|
|
Return
|
|
End If
|
|
|
|
If Not _originalPropertyGridToolStripItemCountValid Then
|
|
_originalPropertyGridToolStripItemCount = propertyGridToolStrip.Items.Count
|
|
_originalPropertyGridToolStripItemCountValid = True
|
|
End If
|
|
Debug.Assert(_originalPropertyGridToolStripItemCount = 5)
|
|
|
|
' Hide the "Property Pages" button
|
|
propertyGridToolStrip.Items(_originalPropertyGridToolStripItemCount - 1).Visible = False
|
|
|
|
Dim expectedToolStripItemCount As Integer = _originalPropertyGridToolStripItemCount + customToolStrip.Items.Count
|
|
If propertyGridToolStrip.Items.Count <> expectedToolStripItemCount Then
|
|
propertyGridToolStrip.AllowMerge = True
|
|
ToolStripManager.Merge(customToolStrip, propertyGridToolStrip)
|
|
End If
|
|
Catch ex As Exception
|
|
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, Language.strConfigUiLoadFailed & vbNewLine & ex.Message, True)
|
|
End Try
|
|
End Sub
|
|
|
|
Private Sub Config_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
|
|
ApplyLanguage()
|
|
|
|
AddHandler Themes.ThemeManager.ThemeChanged, AddressOf ApplyTheme
|
|
ApplyTheme()
|
|
|
|
AddToolStripItems()
|
|
|
|
pGrid.HelpVisible = Settings.ShowConfigHelpText
|
|
End Sub
|
|
|
|
Private Sub Config_SystemColorsChanged(sender As System.Object, e As System.EventArgs) Handles MyBase.SystemColorsChanged
|
|
AddToolStripItems()
|
|
End Sub
|
|
|
|
Private Sub pGrid_PropertyValueChanged(ByVal s As Object, ByVal e As System.Windows.Forms.PropertyValueChangedEventArgs) Handles pGrid.PropertyValueChanged
|
|
Try
|
|
If TypeOf Me.pGrid.SelectedObject Is mRemoteNG.Connection.Info Then
|
|
Select Case e.ChangedItem.Label
|
|
Case My.Language.strPropertyNameProtocol
|
|
TryCast(Me.pGrid.SelectedObject, mRemoteNG.Connection.Info).SetDefaultPort()
|
|
Case My.Language.strPropertyNameName
|
|
App.Runtime.Windows.treeForm.tvConnections.SelectedNode.Text = Me.pGrid.SelectedObject.Name
|
|
If My.Settings.SetHostnameLikeDisplayName And TypeOf Me.pGrid.SelectedObject Is mRemoteNG.Connection.Info Then
|
|
Dim connectionInfo As mRemoteNG.Connection.Info = DirectCast(Me.pGrid.SelectedObject, mRemoteNG.Connection.Info)
|
|
If Not String.IsNullOrEmpty(connectionInfo.Name) Then
|
|
connectionInfo.Hostname = connectionInfo.Name
|
|
End If
|
|
End If
|
|
Case My.Language.strPropertyNameIcon
|
|
Dim conIcon As Icon = mRemoteNG.Connection.Icon.FromString(TryCast(Me.pGrid.SelectedObject, mRemoteNG.Connection.Info).Icon)
|
|
If conIcon IsNot Nothing Then
|
|
Me.btnIcon.Image = conIcon.ToBitmap
|
|
End If
|
|
Case My.Language.strPropertyNameAddress
|
|
Me.SetHostStatus(Me.pGrid.SelectedObject)
|
|
End Select
|
|
|
|
If TryCast(Me.pGrid.SelectedObject, mRemoteNG.Connection.Info).IsDefault Then
|
|
App.Runtime.DefaultConnectionToSettings()
|
|
End If
|
|
End If
|
|
|
|
If TypeOf pGrid.SelectedObject Is Root.PuttySessions.Info Then
|
|
Dim puttyRootInfo As Root.PuttySessions.Info = pGrid.SelectedObject
|
|
Select Case e.ChangedItem.PropertyDescriptor.Name
|
|
Case "Name"
|
|
puttyRootInfo.TreeNode.Text = puttyRootInfo.Name
|
|
Settings.PuttySavedSessionsName = puttyRootInfo.Name
|
|
Case "Panel"
|
|
Settings.PuttySavedSessionsPanel = puttyRootInfo.Panel
|
|
End Select
|
|
ElseIf TypeOf Me.pGrid.SelectedObject Is mRemoteNG.Root.Info Then
|
|
Dim rInfo As mRemoteNG.Root.Info = Me.pGrid.SelectedObject
|
|
|
|
Select Case e.ChangedItem.Label
|
|
Case My.Language.strPasswordProtect
|
|
If rInfo.Password = True Then
|
|
Dim pw As String = Tools.Misc.PasswordDialog
|
|
|
|
If pw <> "" Then
|
|
rInfo.PasswordString = pw
|
|
Else
|
|
rInfo.Password = False
|
|
End If
|
|
End If
|
|
Case My.Language.strPropertyNameName
|
|
App.Runtime.Windows.treeForm.tvConnections.SelectedNode.Text = Me.pGrid.SelectedObject.Name
|
|
End Select
|
|
End If
|
|
|
|
If TypeOf Me.pGrid.SelectedObject Is mRemoteNG.Connection.Info.Inheritance Then
|
|
If TryCast(Me.pGrid.SelectedObject, mRemoteNG.Connection.Info.Inheritance).IsDefault Then
|
|
App.Runtime.DefaultInheritanceToSettings()
|
|
End If
|
|
End If
|
|
|
|
Me.ShowHideGridItems()
|
|
App.Runtime.SaveConnectionsBG()
|
|
Catch ex As Exception
|
|
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strConfigPropertyGridValueFailed & vbNewLine & ex.Message, True)
|
|
End Try
|
|
End Sub
|
|
|
|
Private Sub pGrid_PropertySortChanged(ByVal sender As Object, ByVal e As EventArgs) Handles pGrid.PropertySortChanged
|
|
If pGrid.PropertySort = PropertySort.CategorizedAlphabetical Then
|
|
pGrid.PropertySort = PropertySort.Categorized
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub ShowHideGridItems()
|
|
Try
|
|
Dim strHide As New List(Of String)
|
|
|
|
If TypeOf Me.pGrid.SelectedObject Is mRemoteNG.Connection.Info Then
|
|
Dim conI As mRemoteNG.Connection.Info = pGrid.SelectedObject
|
|
|
|
Select Case conI.Protocol
|
|
Case mRemoteNG.Connection.Protocol.Protocols.RDP
|
|
strHide.Add("ExtApp")
|
|
strHide.Add("ICAEncryption")
|
|
strHide.Add("PuttySession")
|
|
strHide.Add("RenderingEngine")
|
|
strHide.Add("VNCAuthMode")
|
|
strHide.Add("VNCColors")
|
|
strHide.Add("VNCCompression")
|
|
strHide.Add("VNCEncoding")
|
|
strHide.Add("VNCProxyIP")
|
|
strHide.Add("VNCProxyPassword")
|
|
strHide.Add("VNCProxyPort")
|
|
strHide.Add("VNCProxyType")
|
|
strHide.Add("VNCProxyUsername")
|
|
strHide.Add("VNCSmartSizeMode")
|
|
strHide.Add("VNCViewOnly")
|
|
If conI.RDGatewayUsageMethod = mRemoteNG.Connection.Protocol.RDP.RDGatewayUsageMethod.Never Then
|
|
strHide.Add("RDGatewayDomain")
|
|
strHide.Add("RDGatewayHostname")
|
|
strHide.Add("RDGatewayPassword")
|
|
strHide.Add("RDGatewayUseConnectionCredentials")
|
|
strHide.Add("RDGatewayUsername")
|
|
ElseIf conI.RDGatewayUseConnectionCredentials Then
|
|
strHide.Add("RDGatewayDomain")
|
|
strHide.Add("RDGatewayPassword")
|
|
strHide.Add("RDGatewayUsername")
|
|
End If
|
|
If Not (conI.Resolution = RDP.RDPResolutions.FitToWindow Or _
|
|
conI.Resolution = RDP.RDPResolutions.Fullscreen) Then
|
|
strHide.Add("AutomaticResize")
|
|
End If
|
|
Case mRemoteNG.Connection.Protocol.Protocols.VNC
|
|
strHide.Add("CacheBitmaps")
|
|
strHide.Add("Colors")
|
|
strHide.Add("DisplayThemes")
|
|
strHide.Add("DisplayWallpaper")
|
|
strHide.Add("EnableFontSmoothing")
|
|
strHide.Add("EnableDesktopComposition")
|
|
strHide.Add("ExtApp")
|
|
strHide.Add("ICAEncryption")
|
|
strHide.Add("PuttySession")
|
|
strHide.Add("RDGatewayDomain")
|
|
strHide.Add("RDGatewayHostname")
|
|
strHide.Add("RDGatewayPassword")
|
|
strHide.Add("RDGatewayUsageMethod")
|
|
strHide.Add("RDGatewayUseConnectionCredentials")
|
|
strHide.Add("RDGatewayUsername")
|
|
strHide.Add("RDPAuthenticationLevel")
|
|
strHide.Add("LoadBalanceInfo")
|
|
strHide.Add("RedirectDiskDrives")
|
|
strHide.Add("RedirectKeys")
|
|
strHide.Add("RedirectPorts")
|
|
strHide.Add("RedirectPrinters")
|
|
strHide.Add("RedirectSmartCards")
|
|
strHide.Add("RedirectSound")
|
|
strHide.Add("RenderingEngine")
|
|
strHide.Add("Resolution")
|
|
strHide.Add("AutomaticResize")
|
|
strHide.Add("UseConsoleSession")
|
|
strHide.Add("UseCredSsp")
|
|
If conI.VNCAuthMode = mRemoteNG.Connection.Protocol.VNC.AuthMode.AuthVNC Then
|
|
strHide.Add("Username")
|
|
strHide.Add("Domain")
|
|
End If
|
|
If conI.VNCProxyType = mRemoteNG.Connection.Protocol.VNC.ProxyType.ProxyNone Then
|
|
strHide.Add("VNCProxyIP")
|
|
strHide.Add("VNCProxyPassword")
|
|
strHide.Add("VNCProxyPort")
|
|
strHide.Add("VNCProxyUsername")
|
|
End If
|
|
Case mRemoteNG.Connection.Protocol.Protocols.SSH1
|
|
strHide.Add("CacheBitmaps")
|
|
strHide.Add("Colors")
|
|
strHide.Add("DisplayThemes")
|
|
strHide.Add("DisplayWallpaper")
|
|
strHide.Add("EnableFontSmoothing")
|
|
strHide.Add("EnableDesktopComposition")
|
|
strHide.Add("Domain")
|
|
strHide.Add("ExtApp")
|
|
strHide.Add("ICAEncryption")
|
|
strHide.Add("RDGatewayDomain")
|
|
strHide.Add("RDGatewayHostname")
|
|
strHide.Add("RDGatewayPassword")
|
|
strHide.Add("RDGatewayUsageMethod")
|
|
strHide.Add("RDGatewayUseConnectionCredentials")
|
|
strHide.Add("RDGatewayUsername")
|
|
strHide.Add("RDPAuthenticationLevel")
|
|
strHide.Add("LoadBalanceInfo")
|
|
strHide.Add("RedirectDiskDrives")
|
|
strHide.Add("RedirectKeys")
|
|
strHide.Add("RedirectPorts")
|
|
strHide.Add("RedirectPrinters")
|
|
strHide.Add("RedirectSmartCards")
|
|
strHide.Add("RedirectSound")
|
|
strHide.Add("RenderingEngine")
|
|
strHide.Add("Resolution")
|
|
strHide.Add("AutomaticResize")
|
|
strHide.Add("UseConsoleSession")
|
|
strHide.Add("UseCredSsp")
|
|
strHide.Add("VNCAuthMode")
|
|
strHide.Add("VNCColors")
|
|
strHide.Add("VNCCompression")
|
|
strHide.Add("VNCEncoding")
|
|
strHide.Add("VNCProxyIP")
|
|
strHide.Add("VNCProxyPassword")
|
|
strHide.Add("VNCProxyPort")
|
|
strHide.Add("VNCProxyType")
|
|
strHide.Add("VNCProxyUsername")
|
|
strHide.Add("VNCSmartSizeMode")
|
|
strHide.Add("VNCViewOnly")
|
|
Case mRemoteNG.Connection.Protocol.Protocols.SSH2
|
|
strHide.Add("CacheBitmaps")
|
|
strHide.Add("Colors")
|
|
strHide.Add("DisplayThemes")
|
|
strHide.Add("DisplayWallpaper")
|
|
strHide.Add("EnableFontSmoothing")
|
|
strHide.Add("EnableDesktopComposition")
|
|
strHide.Add("Domain")
|
|
strHide.Add("ExtApp")
|
|
strHide.Add("ICAEncryption")
|
|
strHide.Add("RDGatewayDomain")
|
|
strHide.Add("RDGatewayHostname")
|
|
strHide.Add("RDGatewayPassword")
|
|
strHide.Add("RDGatewayUsageMethod")
|
|
strHide.Add("RDGatewayUseConnectionCredentials")
|
|
strHide.Add("RDGatewayUsername")
|
|
strHide.Add("RDPAuthenticationLevel")
|
|
strHide.Add("LoadBalanceInfo")
|
|
strHide.Add("RedirectDiskDrives")
|
|
strHide.Add("RedirectKeys")
|
|
strHide.Add("RedirectPorts")
|
|
strHide.Add("RedirectPrinters")
|
|
strHide.Add("RedirectSmartCards")
|
|
strHide.Add("RedirectSound")
|
|
strHide.Add("RenderingEngine")
|
|
strHide.Add("Resolution")
|
|
strHide.Add("AutomaticResize")
|
|
strHide.Add("UseConsoleSession")
|
|
strHide.Add("UseCredSsp")
|
|
strHide.Add("VNCAuthMode")
|
|
strHide.Add("VNCColors")
|
|
strHide.Add("VNCCompression")
|
|
strHide.Add("VNCEncoding")
|
|
strHide.Add("VNCProxyIP")
|
|
strHide.Add("VNCProxyPassword")
|
|
strHide.Add("VNCProxyPort")
|
|
strHide.Add("VNCProxyType")
|
|
strHide.Add("VNCProxyUsername")
|
|
strHide.Add("VNCSmartSizeMode")
|
|
strHide.Add("VNCViewOnly")
|
|
Case mRemoteNG.Connection.Protocol.Protocols.Telnet
|
|
strHide.Add("CacheBitmaps")
|
|
strHide.Add("Colors")
|
|
strHide.Add("DisplayThemes")
|
|
strHide.Add("DisplayWallpaper")
|
|
strHide.Add("EnableFontSmoothing")
|
|
strHide.Add("EnableDesktopComposition")
|
|
strHide.Add("Domain")
|
|
strHide.Add("ExtApp")
|
|
strHide.Add("ICAEncryption")
|
|
strHide.Add("Password")
|
|
strHide.Add("RDGatewayDomain")
|
|
strHide.Add("RDGatewayHostname")
|
|
strHide.Add("RDGatewayPassword")
|
|
strHide.Add("RDGatewayUsageMethod")
|
|
strHide.Add("RDGatewayUseConnectionCredentials")
|
|
strHide.Add("RDGatewayUsername")
|
|
strHide.Add("RDPAuthenticationLevel")
|
|
strHide.Add("LoadBalanceInfo")
|
|
strHide.Add("RedirectDiskDrives")
|
|
strHide.Add("RedirectKeys")
|
|
strHide.Add("RedirectPorts")
|
|
strHide.Add("RedirectPrinters")
|
|
strHide.Add("RedirectSmartCards")
|
|
strHide.Add("RedirectSound")
|
|
strHide.Add("RenderingEngine")
|
|
strHide.Add("Resolution")
|
|
strHide.Add("AutomaticResize")
|
|
strHide.Add("UseConsoleSession")
|
|
strHide.Add("UseCredSsp")
|
|
strHide.Add("Username")
|
|
strHide.Add("VNCAuthMode")
|
|
strHide.Add("VNCColors")
|
|
strHide.Add("VNCCompression")
|
|
strHide.Add("VNCEncoding")
|
|
strHide.Add("VNCProxyIP")
|
|
strHide.Add("VNCProxyPassword")
|
|
strHide.Add("VNCProxyPort")
|
|
strHide.Add("VNCProxyType")
|
|
strHide.Add("VNCProxyUsername")
|
|
strHide.Add("VNCSmartSizeMode")
|
|
strHide.Add("VNCViewOnly")
|
|
Case mRemoteNG.Connection.Protocol.Protocols.Rlogin
|
|
strHide.Add("CacheBitmaps")
|
|
strHide.Add("Colors")
|
|
strHide.Add("DisplayThemes")
|
|
strHide.Add("DisplayWallpaper")
|
|
strHide.Add("EnableFontSmoothing")
|
|
strHide.Add("EnableDesktopComposition")
|
|
strHide.Add("Domain")
|
|
strHide.Add("ExtApp")
|
|
strHide.Add("ICAEncryption")
|
|
strHide.Add("Password")
|
|
strHide.Add("RDGatewayDomain")
|
|
strHide.Add("RDGatewayHostname")
|
|
strHide.Add("RDGatewayPassword")
|
|
strHide.Add("RDGatewayUsageMethod")
|
|
strHide.Add("RDGatewayUseConnectionCredentials")
|
|
strHide.Add("RDGatewayUsername")
|
|
strHide.Add("RDPAuthenticationLevel")
|
|
strHide.Add("LoadBalanceInfo")
|
|
strHide.Add("RedirectDiskDrives")
|
|
strHide.Add("RedirectKeys")
|
|
strHide.Add("RedirectPorts")
|
|
strHide.Add("RedirectPrinters")
|
|
strHide.Add("RedirectSmartCards")
|
|
strHide.Add("RedirectSound")
|
|
strHide.Add("RenderingEngine")
|
|
strHide.Add("Resolution")
|
|
strHide.Add("AutomaticResize")
|
|
strHide.Add("UseConsoleSession")
|
|
strHide.Add("UseCredSsp")
|
|
strHide.Add("Username")
|
|
strHide.Add("VNCAuthMode")
|
|
strHide.Add("VNCColors")
|
|
strHide.Add("VNCCompression")
|
|
strHide.Add("VNCEncoding")
|
|
strHide.Add("VNCProxyIP")
|
|
strHide.Add("VNCProxyPassword")
|
|
strHide.Add("VNCProxyPort")
|
|
strHide.Add("VNCProxyType")
|
|
strHide.Add("VNCProxyUsername")
|
|
strHide.Add("VNCSmartSizeMode")
|
|
strHide.Add("VNCViewOnly")
|
|
Case mRemoteNG.Connection.Protocol.Protocols.RAW
|
|
strHide.Add("CacheBitmaps")
|
|
strHide.Add("Colors")
|
|
strHide.Add("DisplayThemes")
|
|
strHide.Add("DisplayWallpaper")
|
|
strHide.Add("EnableFontSmoothing")
|
|
strHide.Add("EnableDesktopComposition")
|
|
strHide.Add("Domain")
|
|
strHide.Add("ExtApp")
|
|
strHide.Add("ICAEncryption")
|
|
strHide.Add("Password")
|
|
strHide.Add("RDGatewayDomain")
|
|
strHide.Add("RDGatewayHostname")
|
|
strHide.Add("RDGatewayPassword")
|
|
strHide.Add("RDGatewayUsageMethod")
|
|
strHide.Add("RDGatewayUseConnectionCredentials")
|
|
strHide.Add("RDGatewayUsername")
|
|
strHide.Add("RDPAuthenticationLevel")
|
|
strHide.Add("LoadBalanceInfo")
|
|
strHide.Add("RedirectDiskDrives")
|
|
strHide.Add("RedirectKeys")
|
|
strHide.Add("RedirectPorts")
|
|
strHide.Add("RedirectPrinters")
|
|
strHide.Add("RedirectSmartCards")
|
|
strHide.Add("RedirectSound")
|
|
strHide.Add("RenderingEngine")
|
|
strHide.Add("Resolution")
|
|
strHide.Add("AutomaticResize")
|
|
strHide.Add("UseConsoleSession")
|
|
strHide.Add("UseCredSsp")
|
|
strHide.Add("Username")
|
|
strHide.Add("VNCAuthMode")
|
|
strHide.Add("VNCColors")
|
|
strHide.Add("VNCCompression")
|
|
strHide.Add("VNCEncoding")
|
|
strHide.Add("VNCProxyIP")
|
|
strHide.Add("VNCProxyPassword")
|
|
strHide.Add("VNCProxyPort")
|
|
strHide.Add("VNCProxyType")
|
|
strHide.Add("VNCProxyUsername")
|
|
strHide.Add("VNCSmartSizeMode")
|
|
strHide.Add("VNCViewOnly")
|
|
Case mRemoteNG.Connection.Protocol.Protocols.HTTP
|
|
strHide.Add("CacheBitmaps")
|
|
strHide.Add("Colors")
|
|
strHide.Add("DisplayThemes")
|
|
strHide.Add("DisplayWallpaper")
|
|
strHide.Add("EnableFontSmoothing")
|
|
strHide.Add("EnableDesktopComposition")
|
|
strHide.Add("Domain")
|
|
strHide.Add("ExtApp")
|
|
strHide.Add("ICAEncryption")
|
|
strHide.Add("PuttySession")
|
|
strHide.Add("RDGatewayDomain")
|
|
strHide.Add("RDGatewayHostname")
|
|
strHide.Add("RDGatewayPassword")
|
|
strHide.Add("RDGatewayUsageMethod")
|
|
strHide.Add("RDGatewayUseConnectionCredentials")
|
|
strHide.Add("RDGatewayUsername")
|
|
strHide.Add("RDPAuthenticationLevel")
|
|
strHide.Add("LoadBalanceInfo")
|
|
strHide.Add("RedirectDiskDrives")
|
|
strHide.Add("RedirectKeys")
|
|
strHide.Add("RedirectPorts")
|
|
strHide.Add("RedirectPrinters")
|
|
strHide.Add("RedirectSmartCards")
|
|
strHide.Add("RedirectSound")
|
|
strHide.Add("Resolution")
|
|
strHide.Add("AutomaticResize")
|
|
strHide.Add("UseConsoleSession")
|
|
strHide.Add("UseCredSsp")
|
|
strHide.Add("VNCAuthMode")
|
|
strHide.Add("VNCColors")
|
|
strHide.Add("VNCCompression")
|
|
strHide.Add("VNCEncoding")
|
|
strHide.Add("VNCProxyIP")
|
|
strHide.Add("VNCProxyPassword")
|
|
strHide.Add("VNCProxyPort")
|
|
strHide.Add("VNCProxyType")
|
|
strHide.Add("VNCProxyUsername")
|
|
strHide.Add("VNCSmartSizeMode")
|
|
strHide.Add("VNCViewOnly")
|
|
Case mRemoteNG.Connection.Protocol.Protocols.HTTPS
|
|
strHide.Add("CacheBitmaps")
|
|
strHide.Add("Colors")
|
|
strHide.Add("DisplayThemes")
|
|
strHide.Add("DisplayWallpaper")
|
|
strHide.Add("EnableFontSmoothing")
|
|
strHide.Add("EnableDesktopComposition")
|
|
strHide.Add("Domain")
|
|
strHide.Add("ExtApp")
|
|
strHide.Add("ICAEncryption")
|
|
strHide.Add("PuttySession")
|
|
strHide.Add("RDGatewayDomain")
|
|
strHide.Add("RDGatewayHostname")
|
|
strHide.Add("RDGatewayPassword")
|
|
strHide.Add("RDGatewayUsageMethod")
|
|
strHide.Add("RDGatewayUseConnectionCredentials")
|
|
strHide.Add("RDGatewayUsername")
|
|
strHide.Add("RDPAuthenticationLevel")
|
|
strHide.Add("LoadBalanceInfo")
|
|
strHide.Add("RedirectDiskDrives")
|
|
strHide.Add("RedirectKeys")
|
|
strHide.Add("RedirectPorts")
|
|
strHide.Add("RedirectPrinters")
|
|
strHide.Add("RedirectSmartCards")
|
|
strHide.Add("RedirectSound;Resolution")
|
|
strHide.Add("AutomaticResize")
|
|
strHide.Add("UseConsoleSession")
|
|
strHide.Add("UseCredSsp")
|
|
strHide.Add("VNCAuthMode")
|
|
strHide.Add("VNCColors")
|
|
strHide.Add("VNCCompression")
|
|
strHide.Add("VNCEncoding")
|
|
strHide.Add("VNCProxyIP")
|
|
strHide.Add("VNCProxyPassword")
|
|
strHide.Add("VNCProxyPort")
|
|
strHide.Add("VNCProxyType")
|
|
strHide.Add("VNCProxyUsername")
|
|
strHide.Add("VNCSmartSizeMode")
|
|
strHide.Add("VNCViewOnly")
|
|
Case mRemoteNG.Connection.Protocol.Protocols.ICA
|
|
strHide.Add("DisplayThemes")
|
|
strHide.Add("DisplayWallpaper")
|
|
strHide.Add("EnableFontSmoothing")
|
|
strHide.Add("EnableDesktopComposition")
|
|
strHide.Add("ExtApp")
|
|
strHide.Add("Port")
|
|
strHide.Add("PuttySession")
|
|
strHide.Add("RDGatewayDomain")
|
|
strHide.Add("RDGatewayHostname")
|
|
strHide.Add("RDGatewayPassword")
|
|
strHide.Add("RDGatewayUsageMethod")
|
|
strHide.Add("RDGatewayUseConnectionCredentials")
|
|
strHide.Add("RDGatewayUsername")
|
|
strHide.Add("RDPAuthenticationLevel")
|
|
strHide.Add("LoadBalanceInfo")
|
|
strHide.Add("RedirectDiskDrives")
|
|
strHide.Add("RedirectKeys")
|
|
strHide.Add("RedirectPorts")
|
|
strHide.Add("RedirectPrinters")
|
|
strHide.Add("RedirectSmartCards")
|
|
strHide.Add("RedirectSound")
|
|
strHide.Add("RenderingEngine")
|
|
strHide.Add("AutomaticResize")
|
|
strHide.Add("UseConsoleSession")
|
|
strHide.Add("UseCredSsp")
|
|
strHide.Add("VNCAuthMode")
|
|
strHide.Add("VNCColors")
|
|
strHide.Add("VNCCompression")
|
|
strHide.Add("VNCEncoding")
|
|
strHide.Add("VNCProxyIP")
|
|
strHide.Add("VNCProxyPassword")
|
|
strHide.Add("VNCProxyPort")
|
|
strHide.Add("VNCProxyType")
|
|
strHide.Add("VNCProxyUsername")
|
|
strHide.Add("VNCSmartSizeMode")
|
|
strHide.Add("VNCViewOnly")
|
|
Case mRemoteNG.Connection.Protocol.Protocols.IntApp
|
|
strHide.Add("CacheBitmaps")
|
|
strHide.Add("Colors")
|
|
strHide.Add("DisplayThemes")
|
|
strHide.Add("DisplayWallpaper")
|
|
strHide.Add("EnableFontSmoothing")
|
|
strHide.Add("EnableDesktopComposition")
|
|
strHide.Add("Domain")
|
|
strHide.Add("ICAEncryption")
|
|
strHide.Add("PuttySession")
|
|
strHide.Add("RDGatewayDomain")
|
|
strHide.Add("RDGatewayHostname")
|
|
strHide.Add("RDGatewayPassword")
|
|
strHide.Add("RDGatewayUsageMethod")
|
|
strHide.Add("RDGatewayUseConnectionCredentials")
|
|
strHide.Add("RDGatewayUsername")
|
|
strHide.Add("RDPAuthenticationLevel")
|
|
strHide.Add("LoadBalanceInfo")
|
|
strHide.Add("RedirectDiskDrives")
|
|
strHide.Add("RedirectKeys")
|
|
strHide.Add("RedirectPorts")
|
|
strHide.Add("RedirectPrinters")
|
|
strHide.Add("RedirectSmartCards")
|
|
strHide.Add("RedirectSound")
|
|
strHide.Add("RenderingEngine")
|
|
strHide.Add("Resolution")
|
|
strHide.Add("AutomaticResize")
|
|
strHide.Add("UseConsoleSession")
|
|
strHide.Add("UseCredSsp")
|
|
strHide.Add("VNCAuthMode")
|
|
strHide.Add("VNCColors")
|
|
strHide.Add("VNCCompression")
|
|
strHide.Add("VNCEncoding")
|
|
strHide.Add("VNCProxyIP")
|
|
strHide.Add("VNCProxyPassword")
|
|
strHide.Add("VNCProxyPort")
|
|
strHide.Add("VNCProxyType")
|
|
strHide.Add("VNCProxyUsername")
|
|
strHide.Add("VNCSmartSizeMode")
|
|
strHide.Add("VNCViewOnly")
|
|
End Select
|
|
|
|
If conI.IsDefault = False Then
|
|
With conI.Inherit
|
|
If .CacheBitmaps Then
|
|
strHide.Add("CacheBitmaps")
|
|
End If
|
|
|
|
If .Colors Then
|
|
strHide.Add("Colors")
|
|
End If
|
|
|
|
If .Description Then
|
|
strHide.Add("Description")
|
|
End If
|
|
|
|
If .DisplayThemes Then
|
|
strHide.Add("DisplayThemes")
|
|
End If
|
|
|
|
If .DisplayWallpaper Then
|
|
strHide.Add("DisplayWallpaper")
|
|
End If
|
|
|
|
If .EnableFontSmoothing Then
|
|
strHide.Add("EnableFontSmoothing")
|
|
End If
|
|
|
|
If .EnableDesktopComposition Then
|
|
strHide.Add("EnableDesktopComposition")
|
|
End If
|
|
|
|
If .Domain Then
|
|
strHide.Add("Domain")
|
|
End If
|
|
|
|
If .Icon Then
|
|
strHide.Add("Icon")
|
|
End If
|
|
|
|
If .Password Then
|
|
strHide.Add("Password")
|
|
End If
|
|
|
|
If .Port Then
|
|
strHide.Add("Port")
|
|
End If
|
|
|
|
If .Protocol Then
|
|
strHide.Add("Protocol")
|
|
End If
|
|
|
|
If .PuttySession Then
|
|
strHide.Add("PuttySession")
|
|
End If
|
|
|
|
If .RedirectDiskDrives Then
|
|
strHide.Add("RedirectDiskDrives")
|
|
End If
|
|
|
|
If .RedirectKeys Then
|
|
strHide.Add("RedirectKeys")
|
|
End If
|
|
|
|
If .RedirectPorts Then
|
|
strHide.Add("RedirectPorts")
|
|
End If
|
|
|
|
If .RedirectPrinters Then
|
|
strHide.Add("RedirectPrinters")
|
|
End If
|
|
|
|
If .RedirectSmartCards Then
|
|
strHide.Add("RedirectSmartCards")
|
|
End If
|
|
|
|
If .RedirectSound Then
|
|
strHide.Add("RedirectSound")
|
|
End If
|
|
|
|
If .Resolution Then
|
|
strHide.Add("Resolution")
|
|
End If
|
|
|
|
If .UseConsoleSession Then
|
|
strHide.Add("UseConsoleSession")
|
|
End If
|
|
|
|
If .UseCredSsp Then
|
|
strHide.Add("UseCredSsp")
|
|
End If
|
|
|
|
If .RenderingEngine Then
|
|
strHide.Add("RenderingEngine")
|
|
End If
|
|
|
|
If .ICAEncryption Then
|
|
strHide.Add("ICAEncryption")
|
|
End If
|
|
|
|
If .RDPAuthenticationLevel Then
|
|
strHide.Add("RDPAuthenticationLevel")
|
|
End If
|
|
|
|
If .Username Then
|
|
strHide.Add("Username")
|
|
End If
|
|
|
|
If .Panel Then
|
|
strHide.Add("Panel")
|
|
End If
|
|
|
|
If conI.IsContainer Then
|
|
strHide.Add("Hostname")
|
|
End If
|
|
|
|
If .PreExtApp Then
|
|
strHide.Add("PreExtApp")
|
|
End If
|
|
|
|
If .PostExtApp Then
|
|
strHide.Add("PostExtApp")
|
|
End If
|
|
|
|
If .MacAddress Then
|
|
strHide.Add("MacAddress")
|
|
End If
|
|
|
|
If .UserField Then
|
|
strHide.Add("UserField")
|
|
End If
|
|
|
|
If .VNCAuthMode Then
|
|
strHide.Add("VNCAuthMode")
|
|
End If
|
|
|
|
If .VNCColors Then
|
|
strHide.Add("VNCColors")
|
|
End If
|
|
|
|
If .VNCCompression Then
|
|
strHide.Add("VNCCompression")
|
|
End If
|
|
|
|
If .VNCEncoding Then
|
|
strHide.Add("VNCEncoding")
|
|
End If
|
|
|
|
If .VNCProxyIP Then
|
|
strHide.Add("VNCProxyIP")
|
|
End If
|
|
|
|
If .VNCProxyPassword Then
|
|
strHide.Add("VNCProxyPassword")
|
|
End If
|
|
|
|
If .VNCProxyPort Then
|
|
strHide.Add("VNCProxyPort")
|
|
End If
|
|
|
|
If .VNCProxyType Then
|
|
strHide.Add("VNCProxyType")
|
|
End If
|
|
|
|
If .VNCProxyUsername Then
|
|
strHide.Add("VNCProxyUsername")
|
|
End If
|
|
|
|
If .VNCViewOnly Then
|
|
strHide.Add("VNCViewOnly")
|
|
End If
|
|
|
|
If .VNCSmartSizeMode Then
|
|
strHide.Add("VNCSmartSizeMode")
|
|
End If
|
|
|
|
If .ExtApp Then
|
|
strHide.Add("ExtApp")
|
|
End If
|
|
|
|
If .RDGatewayUsageMethod Then
|
|
strHide.Add("RDGatewayUsageMethod")
|
|
End If
|
|
|
|
If .RDGatewayHostname Then
|
|
strHide.Add("RDGatewayHostname")
|
|
End If
|
|
|
|
If .RDGatewayUsername Then
|
|
strHide.Add("RDGatewayUsername")
|
|
End If
|
|
|
|
If .RDGatewayPassword Then
|
|
strHide.Add("RDGatewayPassword")
|
|
End If
|
|
|
|
If .RDGatewayDomain Then
|
|
strHide.Add("RDGatewayDomain")
|
|
End If
|
|
|
|
If .RDGatewayUseConnectionCredentials Then
|
|
strHide.Add("RDGatewayUseConnectionCredentials")
|
|
End If
|
|
|
|
If .RDGatewayHostname Then
|
|
strHide.Add("RDGatewayHostname")
|
|
End If
|
|
End With
|
|
Else
|
|
strHide.Add("Hostname")
|
|
strHide.Add("Name")
|
|
End If
|
|
ElseIf TypeOf pGrid.SelectedObject Is Root.Info Then
|
|
Dim rootInfo As Root.Info = CType(pGrid.SelectedObject, Root.Info)
|
|
If rootInfo.Type = Root.Info.RootType.PuttySessions Then
|
|
strHide.Add("Password")
|
|
End If
|
|
End If
|
|
|
|
Me.pGrid.HiddenProperties = strHide.ToArray
|
|
|
|
Me.pGrid.Refresh()
|
|
Catch ex As Exception
|
|
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strConfigPropertyGridHideItemsFailed & vbNewLine & ex.Message, True)
|
|
End Try
|
|
End Sub
|
|
|
|
Private Sub btnShowProperties_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnShowProperties.Click
|
|
If TypeOf Me.pGrid.SelectedObject Is mRemoteNG.Connection.Info.Inheritance Then
|
|
If TryCast(Me.pGrid.SelectedObject, mRemoteNG.Connection.Info.Inheritance).IsDefault Then
|
|
Me.PropertiesVisible = True
|
|
Me.InheritanceVisible = False
|
|
Me.DefaultPropertiesVisible = False
|
|
Me.DefaultInheritanceVisible = False
|
|
Me.SetPropertyGridObject(TryCast(App.Runtime.Windows.treeForm.tvConnections.SelectedNode.Tag, mRemoteNG.Root.Info))
|
|
Else
|
|
Me.PropertiesVisible = True
|
|
Me.InheritanceVisible = False
|
|
Me.DefaultPropertiesVisible = False
|
|
Me.DefaultInheritanceVisible = False
|
|
Me.SetPropertyGridObject(TryCast(Me.pGrid.SelectedObject, mRemoteNG.Connection.Info.Inheritance).Parent)
|
|
End If
|
|
ElseIf TypeOf Me.pGrid.SelectedObject Is mRemoteNG.Connection.Info Then
|
|
If TryCast(Me.pGrid.SelectedObject, mRemoteNG.Connection.Info).IsDefault Then
|
|
Me.PropertiesVisible = True
|
|
Me.InheritanceVisible = False
|
|
Me.DefaultPropertiesVisible = False
|
|
Me.DefaultInheritanceVisible = False
|
|
Me.SetPropertyGridObject(TryCast(App.Runtime.Windows.treeForm.tvConnections.SelectedNode.Tag, mRemoteNG.Root.Info))
|
|
End If
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub btnShowDefaultProperties_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnShowDefaultProperties.Click
|
|
If TypeOf Me.pGrid.SelectedObject Is mRemoteNG.Root.Info Or TypeOf Me.pGrid.SelectedObject Is mRemoteNG.Connection.Info.Inheritance Then
|
|
Me.PropertiesVisible = False
|
|
Me.InheritanceVisible = False
|
|
Me.DefaultPropertiesVisible = True
|
|
Me.DefaultInheritanceVisible = False
|
|
Me.SetPropertyGridObject(App.Runtime.DefaultConnectionFromSettings())
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub btnShowInheritance_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnShowInheritance.Click
|
|
If TypeOf Me.pGrid.SelectedObject Is mRemoteNG.Connection.Info Then
|
|
Me.PropertiesVisible = False
|
|
Me.InheritanceVisible = True
|
|
Me.DefaultPropertiesVisible = False
|
|
Me.DefaultInheritanceVisible = False
|
|
Me.SetPropertyGridObject(TryCast(Me.pGrid.SelectedObject, mRemoteNG.Connection.Info).Inherit)
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub btnShowDefaultInheritance_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnShowDefaultInheritance.Click
|
|
If TypeOf Me.pGrid.SelectedObject Is mRemoteNG.Root.Info Or TypeOf Me.pGrid.SelectedObject Is mRemoteNG.Connection.Info Then
|
|
Me.PropertiesVisible = False
|
|
Me.InheritanceVisible = False
|
|
Me.DefaultPropertiesVisible = False
|
|
Me.DefaultInheritanceVisible = True
|
|
Me.SetPropertyGridObject(App.Runtime.DefaultInheritanceFromSettings())
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub btnHostStatus_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnHostStatus.Click
|
|
SetHostStatus(Me.pGrid.SelectedObject)
|
|
End Sub
|
|
|
|
Private Sub btnIcon_Click(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles btnIcon.MouseUp
|
|
Try
|
|
If TypeOf pGrid.SelectedObject Is mRemoteNG.Connection.Info And _
|
|
Not TypeOf pGrid.SelectedObject Is mRemoteNG.Connection.PuttySession.Info Then
|
|
Me.cMenIcons.Items.Clear()
|
|
|
|
For Each iStr As String In mRemoteNG.Connection.Icon.Icons
|
|
Dim tI As New ToolStripMenuItem
|
|
tI.Text = iStr
|
|
tI.Image = mRemoteNG.Connection.Icon.FromString(iStr).ToBitmap
|
|
AddHandler tI.Click, AddressOf IconMenu_Click
|
|
|
|
Me.cMenIcons.Items.Add(tI)
|
|
Next
|
|
|
|
Dim mPos As New Point(PointToScreen(New Point(e.Location.X + Me.pGrid.Width - 100, e.Location.Y)))
|
|
Me.cMenIcons.Show(mPos)
|
|
End If
|
|
Catch ex As Exception
|
|
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strConfigPropertyGridButtonIconClickFailed & vbNewLine & ex.Message, True)
|
|
End Try
|
|
End Sub
|
|
|
|
Private Sub IconMenu_Click(ByVal sender As Object, ByVal e As EventArgs)
|
|
Try
|
|
Dim connectionInfo As mRemoteNG.Connection.Info = TryCast(pGrid.SelectedObject, mRemoteNG.Connection.Info)
|
|
If connectionInfo Is Nothing Then Return
|
|
|
|
Dim selectedMenuItem As ToolStripMenuItem = TryCast(sender, ToolStripMenuItem)
|
|
If selectedMenuItem Is Nothing Then Return
|
|
|
|
Dim iconName As String = selectedMenuItem.Text
|
|
If String.IsNullOrEmpty(iconName) Then Return
|
|
|
|
Dim connectionIcon As Icon = mRemoteNG.Connection.Icon.FromString(iconName)
|
|
If connectionIcon Is Nothing Then Return
|
|
|
|
btnIcon.Image = connectionIcon.ToBitmap()
|
|
|
|
connectionInfo.Icon = iconName
|
|
pGrid.Refresh()
|
|
|
|
SaveConnectionsBG()
|
|
Catch ex As Exception
|
|
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, Language.strConfigPropertyGridMenuClickFailed & vbNewLine & ex.Message, True)
|
|
End Try
|
|
End Sub
|
|
#End Region
|
|
|
|
#Region "Host Status (Ping)"
|
|
Private HostName As String
|
|
Private pThread As Threading.Thread
|
|
|
|
Private Sub CheckHostAlive()
|
|
Dim pingSender As New Ping
|
|
Dim pReply As PingReply
|
|
|
|
Try
|
|
pReply = pingSender.Send(HostName)
|
|
|
|
If pReply.Status = IPStatus.Success Then
|
|
If Me.btnHostStatus.Tag = "checking" Then
|
|
ShowStatusImage(My.Resources.HostStatus_On)
|
|
End If
|
|
Else
|
|
If Me.btnHostStatus.Tag = "checking" Then
|
|
ShowStatusImage(My.Resources.HostStatus_Off)
|
|
End If
|
|
End If
|
|
Catch ex As Exception
|
|
If Me.btnHostStatus.Tag = "checking" Then
|
|
ShowStatusImage(My.Resources.HostStatus_Off)
|
|
End If
|
|
End Try
|
|
End Sub
|
|
|
|
Delegate Sub ShowStatusImageCB(ByVal [Image] As Image)
|
|
Private Sub ShowStatusImage(ByVal [Image] As Image)
|
|
If Me.pGrid.InvokeRequired Then
|
|
Dim d As New ShowStatusImageCB(AddressOf ShowStatusImage)
|
|
Me.pGrid.Invoke(d, New Object() {[Image]})
|
|
Else
|
|
Me.btnHostStatus.Image = Image
|
|
Me.btnHostStatus.Tag = "checkfinished"
|
|
End If
|
|
End Sub
|
|
|
|
Public Sub SetHostStatus(ByVal ConnectionInfo As Object)
|
|
Try
|
|
Me.btnHostStatus.Image = My.Resources.HostStatus_Check
|
|
|
|
' To check status, ConnectionInfo must be an mRemoteNG.Connection.Info that is not a container
|
|
If TypeOf ConnectionInfo Is mRemoteNG.Connection.Info Then
|
|
If TryCast(ConnectionInfo, mRemoteNG.Connection.Info).IsContainer Then Return
|
|
Else
|
|
Return
|
|
End If
|
|
|
|
Me.btnHostStatus.Tag = "checking"
|
|
HostName = TryCast(ConnectionInfo, mRemoteNG.Connection.Info).Hostname
|
|
pThread = New Threading.Thread(AddressOf CheckHostAlive)
|
|
pThread.SetApartmentState(Threading.ApartmentState.STA)
|
|
pThread.IsBackground = True
|
|
pThread.Start()
|
|
Catch ex As Exception
|
|
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strConfigPropertyGridSetHostStatusFailed & vbNewLine & ex.Message, True)
|
|
End Try
|
|
End Sub
|
|
#End Region
|
|
|
|
Private Sub propertyGridContextMenu_Opening(sender As Object, e As System.ComponentModel.CancelEventArgs) Handles propertyGridContextMenu.Opening
|
|
propertyGridContextMenuShowHelpText.Checked = Settings.ShowConfigHelpText
|
|
End Sub
|
|
|
|
Private Sub propertyGridContextMenu_Click(sender As Object, e As EventArgs) Handles propertyGridContextMenuShowHelpText.Click
|
|
propertyGridContextMenuShowHelpText.Checked = Not propertyGridContextMenuShowHelpText.Checked
|
|
End Sub
|
|
|
|
Private Sub propertyGridContextMenu_CheckedChanged(sender As Object, e As EventArgs) Handles propertyGridContextMenuShowHelpText.CheckedChanged
|
|
Settings.ShowConfigHelpText = propertyGridContextMenuShowHelpText.Checked
|
|
pGrid.HelpVisible = propertyGridContextMenuShowHelpText.Checked
|
|
End Sub
|
|
End Class
|
|
End Namespace
|
|
End Namespace |