mirror of
https://github.com/mRemoteNG/mRemoteNG.git
synced 2026-02-17 22:11:48 +08:00
minimal code refractoring
This commit is contained in:
73
mRemoteV1/UI/Window/ConnectionTreeWindow.Designer.cs
generated
73
mRemoteV1/UI/Window/ConnectionTreeWindow.Designer.cs
generated
@@ -17,7 +17,7 @@
|
||||
mRemoteNG.Tree.TreeNodeCompositeClickHandler treeNodeCompositeClickHandler3 = new mRemoteNG.Tree.TreeNodeCompositeClickHandler();
|
||||
mRemoteNG.Tree.AlwaysConfirmYes alwaysConfirmYes2 = new mRemoteNG.Tree.AlwaysConfirmYes();
|
||||
mRemoteNG.Tree.TreeNodeCompositeClickHandler treeNodeCompositeClickHandler4 = new mRemoteNG.Tree.TreeNodeCompositeClickHandler();
|
||||
this.olvConnections = new mRemoteNG.UI.Controls.ConnectionTree();
|
||||
this.ConnectionTree = new mRemoteNG.UI.Controls.ConnectionTree();
|
||||
this.msMain = new System.Windows.Forms.MenuStrip();
|
||||
this.mMenAddConnection = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.mMenAddFolder = new System.Windows.Forms.ToolStripMenuItem();
|
||||
@@ -29,7 +29,7 @@
|
||||
this.pbSearch = new mRemoteNG.UI.Controls.Base.NGPictureBox(this.components);
|
||||
this.txtSearch = new mRemoteNG.UI.Controls.Base.NGSearchBox();
|
||||
this.searchBoxLayoutPanel = new System.Windows.Forms.TableLayoutPanel();
|
||||
((System.ComponentModel.ISupportInitialize)(this.olvConnections)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.ConnectionTree)).BeginInit();
|
||||
this.msMain.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pbSearch)).BeginInit();
|
||||
this.searchBoxLayoutPanel.SuspendLayout();
|
||||
@@ -37,37 +37,37 @@
|
||||
//
|
||||
// olvConnections
|
||||
//
|
||||
this.olvConnections.AllowDrop = true;
|
||||
this.olvConnections.BorderStyle = System.Windows.Forms.BorderStyle.None;
|
||||
this.olvConnections.CellEditUseWholeCell = false;
|
||||
this.olvConnections.ConnectionTreeModel = connectionTreeModel2;
|
||||
this.olvConnections.Cursor = System.Windows.Forms.Cursors.Default;
|
||||
this.olvConnections.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.ConnectionTree.AllowDrop = true;
|
||||
this.ConnectionTree.BorderStyle = System.Windows.Forms.BorderStyle.None;
|
||||
this.ConnectionTree.CellEditUseWholeCell = false;
|
||||
this.ConnectionTree.ConnectionTreeModel = connectionTreeModel2;
|
||||
this.ConnectionTree.Cursor = System.Windows.Forms.Cursors.Default;
|
||||
this.ConnectionTree.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
treeNodeCompositeClickHandler3.ClickHandlers = new mRemoteNG.Tree.ITreeNodeClickHandler<mRemoteNG.Connection.ConnectionInfo>[0];
|
||||
this.olvConnections.DoubleClickHandler = treeNodeCompositeClickHandler3;
|
||||
this.olvConnections.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.olvConnections.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.None;
|
||||
this.olvConnections.HideSelection = false;
|
||||
this.olvConnections.IsSimpleDragSource = true;
|
||||
this.olvConnections.LabelEdit = true;
|
||||
this.olvConnections.Location = new System.Drawing.Point(0, 24);
|
||||
this.olvConnections.MultiSelect = false;
|
||||
this.olvConnections.Name = "olvConnections";
|
||||
this.olvConnections.NodeDeletionConfirmer = alwaysConfirmYes2;
|
||||
this.olvConnections.PostSetupActions = new mRemoteNG.UI.Controls.IConnectionTreeDelegate[0];
|
||||
this.olvConnections.SelectedBackColor = System.Drawing.SystemColors.Highlight;
|
||||
this.olvConnections.SelectedForeColor = System.Drawing.SystemColors.HighlightText;
|
||||
this.olvConnections.ShowGroups = false;
|
||||
this.ConnectionTree.DoubleClickHandler = treeNodeCompositeClickHandler3;
|
||||
this.ConnectionTree.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.ConnectionTree.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.None;
|
||||
this.ConnectionTree.HideSelection = false;
|
||||
this.ConnectionTree.IsSimpleDragSource = true;
|
||||
this.ConnectionTree.LabelEdit = true;
|
||||
this.ConnectionTree.Location = new System.Drawing.Point(0, 24);
|
||||
this.ConnectionTree.MultiSelect = false;
|
||||
this.ConnectionTree.Name = "ConnectionTree";
|
||||
this.ConnectionTree.NodeDeletionConfirmer = alwaysConfirmYes2;
|
||||
this.ConnectionTree.PostSetupActions = new mRemoteNG.UI.Controls.IConnectionTreeDelegate[0];
|
||||
this.ConnectionTree.SelectedBackColor = System.Drawing.SystemColors.Highlight;
|
||||
this.ConnectionTree.SelectedForeColor = System.Drawing.SystemColors.HighlightText;
|
||||
this.ConnectionTree.ShowGroups = false;
|
||||
treeNodeCompositeClickHandler4.ClickHandlers = new mRemoteNG.Tree.ITreeNodeClickHandler<mRemoteNG.Connection.ConnectionInfo>[0];
|
||||
this.olvConnections.SingleClickHandler = treeNodeCompositeClickHandler4;
|
||||
this.olvConnections.Size = new System.Drawing.Size(204, 366);
|
||||
this.olvConnections.TabIndex = 20;
|
||||
this.olvConnections.UnfocusedSelectedBackColor = System.Drawing.SystemColors.Highlight;
|
||||
this.olvConnections.UnfocusedSelectedForeColor = System.Drawing.SystemColors.HighlightText;
|
||||
this.olvConnections.UseCompatibleStateImageBehavior = false;
|
||||
this.olvConnections.UseOverlays = false;
|
||||
this.olvConnections.View = System.Windows.Forms.View.Details;
|
||||
this.olvConnections.VirtualMode = true;
|
||||
this.ConnectionTree.SingleClickHandler = treeNodeCompositeClickHandler4;
|
||||
this.ConnectionTree.Size = new System.Drawing.Size(204, 366);
|
||||
this.ConnectionTree.TabIndex = 20;
|
||||
this.ConnectionTree.UnfocusedSelectedBackColor = System.Drawing.SystemColors.Highlight;
|
||||
this.ConnectionTree.UnfocusedSelectedForeColor = System.Drawing.SystemColors.HighlightText;
|
||||
this.ConnectionTree.UseCompatibleStateImageBehavior = false;
|
||||
this.ConnectionTree.UseOverlays = false;
|
||||
this.ConnectionTree.View = System.Windows.Forms.View.Details;
|
||||
this.ConnectionTree.VirtualMode = true;
|
||||
//
|
||||
// msMain
|
||||
//
|
||||
@@ -94,7 +94,7 @@
|
||||
this.mMenAddConnection.Name = "mMenAddConnection";
|
||||
this.mMenAddConnection.Padding = new System.Windows.Forms.Padding(0, 0, 4, 0);
|
||||
this.mMenAddConnection.Size = new System.Drawing.Size(24, 20);
|
||||
this.mMenAddConnection.Click += new System.EventHandler(this.cMenTreeAddConnection_Click);
|
||||
this.mMenAddConnection.Click += new System.EventHandler(this.CMenTreeAddConnection_Click);
|
||||
//
|
||||
// mMenAddFolder
|
||||
//
|
||||
@@ -102,7 +102,7 @@
|
||||
this.mMenAddFolder.Image = global::mRemoteNG.Resources.Folder_Add;
|
||||
this.mMenAddFolder.Name = "mMenAddFolder";
|
||||
this.mMenAddFolder.Size = new System.Drawing.Size(28, 20);
|
||||
this.mMenAddFolder.Click += new System.EventHandler(this.cMenTreeAddFolder_Click);
|
||||
this.mMenAddFolder.Click += new System.EventHandler(this.CMenTreeAddFolder_Click);
|
||||
//
|
||||
// mMenViewExpandAllFolders
|
||||
//
|
||||
@@ -165,7 +165,7 @@
|
||||
this.txtSearch.TabStop = false;
|
||||
this.txtSearch.Text = "Search";
|
||||
this.txtSearch.TextChanged += new System.EventHandler(this.txtSearch_TextChanged);
|
||||
this.txtSearch.KeyDown += new System.Windows.Forms.KeyEventHandler(this.txtSearch_KeyDown);
|
||||
this.txtSearch.KeyDown += new System.Windows.Forms.KeyEventHandler(this.TxtSearch_KeyDown);
|
||||
//
|
||||
// tableLayoutPanel1
|
||||
//
|
||||
@@ -188,7 +188,7 @@
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
|
||||
this.ClientSize = new System.Drawing.Size(204, 411);
|
||||
this.Controls.Add(this.olvConnections);
|
||||
this.Controls.Add(this.ConnectionTree);
|
||||
this.Controls.Add(this.searchBoxLayoutPanel);
|
||||
this.Controls.Add(this.msMain);
|
||||
this.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
@@ -198,7 +198,7 @@
|
||||
this.TabText = "Connections";
|
||||
this.Text = "Connections";
|
||||
this.Load += new System.EventHandler(this.Tree_Load);
|
||||
((System.ComponentModel.ISupportInitialize)(this.olvConnections)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.ConnectionTree)).EndInit();
|
||||
this.msMain.ResumeLayout(false);
|
||||
this.msMain.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pbSearch)).EndInit();
|
||||
@@ -211,7 +211,6 @@
|
||||
#endregion
|
||||
|
||||
private System.ComponentModel.IContainer components;
|
||||
private Controls.ConnectionTree olvConnections;
|
||||
private WeifenLuo.WinFormsUI.Docking.VisualStudioToolStripExtender vsToolStripExtender;
|
||||
internal Controls.Base.NGPictureBox pbSearch;
|
||||
internal Controls.Base.NGSearchBox txtSearch;
|
||||
|
||||
@@ -23,15 +23,11 @@ namespace mRemoteNG.UI.Window
|
||||
{
|
||||
private readonly IConnectionInitiator _connectionInitiator = new ConnectionInitiator();
|
||||
private ThemeManager _themeManager;
|
||||
private bool sortedAz = true;
|
||||
private bool _sortedAz = true;
|
||||
|
||||
public ConnectionInfo SelectedNode => olvConnections.SelectedNode;
|
||||
public ConnectionInfo SelectedNode => ConnectionTree.SelectedNode;
|
||||
|
||||
public ConnectionTree ConnectionTree
|
||||
{
|
||||
get { return olvConnections; }
|
||||
set { olvConnections = value; }
|
||||
}
|
||||
public ConnectionTree ConnectionTree { get; set; }
|
||||
|
||||
public ConnectionTreeWindow() : this(new DockContent())
|
||||
{
|
||||
@@ -103,7 +99,7 @@ namespace mRemoteNG.UI.Window
|
||||
|
||||
var activeTheme = _themeManager.ActiveTheme;
|
||||
vsToolStripExtender.SetStyle(msMain, activeTheme.Version, activeTheme.Theme);
|
||||
vsToolStripExtender.SetStyle(olvConnections.ContextMenuStrip, activeTheme.Version,
|
||||
vsToolStripExtender.SetStyle(ConnectionTree.ContextMenuStrip, activeTheme.Version,
|
||||
activeTheme.Theme);
|
||||
|
||||
if (!_themeManager.ActiveAndExtended)
|
||||
@@ -124,17 +120,11 @@ namespace mRemoteNG.UI.Window
|
||||
|
||||
private void SetConnectionTreeEventHandlers()
|
||||
{
|
||||
olvConnections.NodeDeletionConfirmer = new SelectedConnectionDeletionConfirmer(prompt =>
|
||||
CTaskDialog
|
||||
.MessageBox(Application.ProductName,
|
||||
prompt,
|
||||
"",
|
||||
ETaskDialogButtons
|
||||
.YesNo,
|
||||
ESysIcons
|
||||
.Question));
|
||||
olvConnections.KeyDown += tvConnections_KeyDown;
|
||||
olvConnections.KeyPress += tvConnections_KeyPress;
|
||||
ConnectionTree.NodeDeletionConfirmer =
|
||||
new SelectedConnectionDeletionConfirmer(prompt => CTaskDialog.MessageBox(
|
||||
Application.ProductName,prompt,"",ETaskDialogButtons.YesNo,ESysIcons.Question));
|
||||
ConnectionTree.KeyDown += TvConnections_KeyDown;
|
||||
ConnectionTree.KeyPress += TvConnections_KeyPress;
|
||||
SetTreePostSetupActions();
|
||||
SetConnectionTreeClickHandlers();
|
||||
Runtime.ConnectionsService.ConnectionsLoaded += ConnectionsServiceOnConnectionsLoaded;
|
||||
@@ -151,7 +141,7 @@ namespace mRemoteNG.UI.Window
|
||||
if (Settings.Default.OpenConsFromLastSession && !Settings.Default.NoReconnect)
|
||||
actions.Add(new PreviousSessionOpener(_connectionInitiator));
|
||||
|
||||
olvConnections.PostSetupActions = actions;
|
||||
ConnectionTree.PostSetupActions = actions;
|
||||
}
|
||||
|
||||
private void SetConnectionTreeClickHandlers()
|
||||
@@ -159,7 +149,7 @@ namespace mRemoteNG.UI.Window
|
||||
var singleClickHandlers = new List<ITreeNodeClickHandler<ConnectionInfo>>();
|
||||
var doubleClickHandlers = new List<ITreeNodeClickHandler<ConnectionInfo>>
|
||||
{
|
||||
new ExpandNodeClickHandler(olvConnections)
|
||||
new ExpandNodeClickHandler(ConnectionTree)
|
||||
};
|
||||
|
||||
if (Settings.Default.SingleClickOnConnectionOpensIt)
|
||||
@@ -170,22 +160,21 @@ namespace mRemoteNG.UI.Window
|
||||
if (Settings.Default.SingleClickSwitchesToOpenConnection)
|
||||
singleClickHandlers.Add(new SwitchToConnectionClickHandler(_connectionInitiator));
|
||||
|
||||
olvConnections.SingleClickHandler = new TreeNodeCompositeClickHandler {ClickHandlers = singleClickHandlers};
|
||||
olvConnections.DoubleClickHandler = new TreeNodeCompositeClickHandler {ClickHandlers = doubleClickHandlers};
|
||||
ConnectionTree.SingleClickHandler = new TreeNodeCompositeClickHandler {ClickHandlers = singleClickHandlers};
|
||||
ConnectionTree.DoubleClickHandler = new TreeNodeCompositeClickHandler {ClickHandlers = doubleClickHandlers};
|
||||
}
|
||||
|
||||
private void ConnectionsServiceOnConnectionsLoaded(object o,
|
||||
ConnectionsLoadedEventArgs connectionsLoadedEventArgs)
|
||||
private void ConnectionsServiceOnConnectionsLoaded(object o, ConnectionsLoadedEventArgs connectionsLoadedEventArgs)
|
||||
{
|
||||
if (olvConnections.InvokeRequired)
|
||||
if (ConnectionTree.InvokeRequired)
|
||||
{
|
||||
olvConnections.Invoke(() => ConnectionsServiceOnConnectionsLoaded(o, connectionsLoadedEventArgs));
|
||||
ConnectionTree.Invoke(() => ConnectionsServiceOnConnectionsLoaded(o, connectionsLoadedEventArgs));
|
||||
return;
|
||||
}
|
||||
|
||||
olvConnections.ConnectionTreeModel = connectionsLoadedEventArgs.NewConnectionTreeModel;
|
||||
olvConnections.SelectedObject = connectionsLoadedEventArgs.NewConnectionTreeModel.RootNodes
|
||||
.OfType<RootNodeInfo>().FirstOrDefault();
|
||||
ConnectionTree.ConnectionTreeModel = connectionsLoadedEventArgs.NewConnectionTreeModel;
|
||||
ConnectionTree.SelectedObject =
|
||||
connectionsLoadedEventArgs.NewConnectionTreeModel.RootNodes.OfType<RootNodeInfo>().FirstOrDefault();
|
||||
}
|
||||
|
||||
#endregion
|
||||
@@ -194,32 +183,32 @@ namespace mRemoteNG.UI.Window
|
||||
|
||||
private void SetMenuEventHandlers()
|
||||
{
|
||||
mMenViewExpandAllFolders.Click += (sender, args) => olvConnections.ExpandAll();
|
||||
mMenViewExpandAllFolders.Click += (sender, args) => ConnectionTree.ExpandAll();
|
||||
mMenViewCollapseAllFolders.Click += (sender, args) =>
|
||||
{
|
||||
olvConnections.CollapseAll();
|
||||
olvConnections.Expand(olvConnections.GetRootConnectionNode());
|
||||
ConnectionTree.CollapseAll();
|
||||
ConnectionTree.Expand(ConnectionTree.GetRootConnectionNode());
|
||||
};
|
||||
mMenSort.Click += (sender, args) =>
|
||||
{
|
||||
if (sortedAz)
|
||||
if (_sortedAz)
|
||||
{
|
||||
olvConnections.SortRecursive(olvConnections.GetRootConnectionNode(), ListSortDirection.Ascending);
|
||||
ConnectionTree.SortRecursive(ConnectionTree.GetRootConnectionNode(), ListSortDirection.Ascending);
|
||||
mMenSort.Image = mRemoteNG.Resources.Sort_ZA;
|
||||
sortedAz = false;
|
||||
_sortedAz = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
olvConnections.SortRecursive(olvConnections.GetRootConnectionNode(), ListSortDirection.Descending);
|
||||
ConnectionTree.SortRecursive(ConnectionTree.GetRootConnectionNode(), ListSortDirection.Descending);
|
||||
mMenSort.Image = mRemoteNG.Resources.Sort_AZ;
|
||||
sortedAz = true;
|
||||
_sortedAz = true;
|
||||
}
|
||||
};
|
||||
mMenFavorites.Click += (sender, args) =>
|
||||
{
|
||||
mMenFavorites.DropDownItems.Clear();
|
||||
var rootNodes = Runtime.ConnectionsService.ConnectionTreeModel.RootNodes;
|
||||
List<ToolStripMenuItem> favoritesList = new List<ToolStripMenuItem>();
|
||||
var favoritesList = new List<ToolStripMenuItem>();
|
||||
|
||||
foreach (var node in rootNodes)
|
||||
{
|
||||
@@ -251,21 +240,21 @@ namespace mRemoteNG.UI.Window
|
||||
|
||||
#region Tree Context Menu
|
||||
|
||||
private void cMenTreeAddConnection_Click(object sender, EventArgs e)
|
||||
private void CMenTreeAddConnection_Click(object sender, EventArgs e)
|
||||
{
|
||||
olvConnections.AddConnection();
|
||||
ConnectionTree.AddConnection();
|
||||
}
|
||||
|
||||
private void cMenTreeAddFolder_Click(object sender, EventArgs e)
|
||||
private void CMenTreeAddFolder_Click(object sender, EventArgs e)
|
||||
{
|
||||
olvConnections.AddFolder();
|
||||
ConnectionTree.AddFolder();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Search
|
||||
|
||||
private void txtSearch_KeyDown(object sender, KeyEventArgs e)
|
||||
private void TxtSearch_KeyDown(object sender, KeyEventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
@@ -273,24 +262,24 @@ namespace mRemoteNG.UI.Window
|
||||
{
|
||||
case Keys.Escape:
|
||||
e.Handled = true;
|
||||
olvConnections.Focus();
|
||||
ConnectionTree.Focus();
|
||||
break;
|
||||
case Keys.Up:
|
||||
{
|
||||
var match = olvConnections.NodeSearcher.PreviousMatch();
|
||||
var match = ConnectionTree.NodeSearcher.PreviousMatch();
|
||||
JumpToNode(match);
|
||||
e.Handled = true;
|
||||
break;
|
||||
}
|
||||
case Keys.Down:
|
||||
{
|
||||
var match = olvConnections.NodeSearcher.NextMatch();
|
||||
var match = ConnectionTree.NodeSearcher.NextMatch();
|
||||
JumpToNode(match);
|
||||
e.Handled = true;
|
||||
break;
|
||||
}
|
||||
default:
|
||||
tvConnections_KeyDown(sender, e);
|
||||
TvConnections_KeyDown(sender, e);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -311,17 +300,17 @@ namespace mRemoteNG.UI.Window
|
||||
{
|
||||
if (txtSearch.Text == "" || txtSearch.Text == Language.strSearchPrompt)
|
||||
{
|
||||
olvConnections.RemoveFilter();
|
||||
ConnectionTree.RemoveFilter();
|
||||
return;
|
||||
}
|
||||
|
||||
olvConnections.ApplyFilter(txtSearch.Text);
|
||||
ConnectionTree.ApplyFilter(txtSearch.Text);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (txtSearch.Text == "") return;
|
||||
olvConnections.NodeSearcher?.SearchByName(txtSearch.Text);
|
||||
JumpToNode(olvConnections.NodeSearcher?.CurrentMatch);
|
||||
ConnectionTree.NodeSearcher?.SearchByName(txtSearch.Text);
|
||||
JumpToNode(ConnectionTree.NodeSearcher?.CurrentMatch);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -329,13 +318,13 @@ namespace mRemoteNG.UI.Window
|
||||
{
|
||||
if (connectionInfo == null)
|
||||
{
|
||||
olvConnections.SelectedObject = null;
|
||||
ConnectionTree.SelectedObject = null;
|
||||
return;
|
||||
}
|
||||
|
||||
ExpandParentsRecursive(connectionInfo);
|
||||
olvConnections.SelectObject(connectionInfo);
|
||||
olvConnections.EnsureModelVisible(connectionInfo);
|
||||
ConnectionTree.SelectObject(connectionInfo);
|
||||
ConnectionTree.EnsureModelVisible(connectionInfo);
|
||||
}
|
||||
|
||||
private void ExpandParentsRecursive(ConnectionInfo connectionInfo)
|
||||
@@ -343,12 +332,12 @@ namespace mRemoteNG.UI.Window
|
||||
while (true)
|
||||
{
|
||||
if (connectionInfo?.Parent == null) return;
|
||||
olvConnections.Expand(connectionInfo.Parent);
|
||||
ConnectionTree.Expand(connectionInfo.Parent);
|
||||
connectionInfo = connectionInfo.Parent;
|
||||
}
|
||||
}
|
||||
|
||||
private void tvConnections_KeyPress(object sender, KeyPressEventArgs e)
|
||||
private void TvConnections_KeyPress(object sender, KeyPressEventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
@@ -363,7 +352,7 @@ namespace mRemoteNG.UI.Window
|
||||
}
|
||||
}
|
||||
|
||||
private void tvConnections_KeyDown(object sender, KeyEventArgs e)
|
||||
private void TvConnections_KeyDown(object sender, KeyEventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user