private Boolean ShellView_KeyDown(Keys e) {
if (System.Windows.Input.Keyboard.FocusedElement is System.Windows.Controls.TextBox && e != Keys.Escape && e != Keys.Enter) {
var key = System.Windows.Input.KeyInterop.KeyFromVirtualKey((Int32)e); // Key to send
var target = System.Windows.Input.Keyboard.FocusedElement as System.Windows.Controls.TextBox; // Target element
var routedEvent = System.Windows.Input.Keyboard.KeyDownEvent; // Event to send
target.RaiseEvent(
new System.Windows.Input.KeyEventArgs(System.Windows.Input.Keyboard.PrimaryDevice, PresentationSource.FromVisual(target), 0, key) { RoutedEvent = routedEvent }
);
return false;
}
if (_ItemForRealNameIsAny) {
if (e == Keys.Escape)
this.EndLabelEdit(true);
else if (e == Keys.F2) {
//TODO: implement a conditional selection inside rename textbox!
} else if (e == Keys.Enter)
this.EndLabelEdit();
}
if ((Control.ModifierKeys & Keys.Control) == Keys.Control &&
!(System.Windows.Input.Keyboard.FocusedElement is System.Windows.Controls.TextBox)) {
switch (e) {
case Keys.A:
SelectAll();
break;
case Keys.Add:
break;
case Keys.Alt:
break;
case Keys.Apps:
break;
case Keys.Attn:
break;
case Keys.B:
break;
case Keys.Back:
this.NavigateParent();
break;
case Keys.BrowserBack:
break;
case Keys.BrowserFavorites:
break;
case Keys.BrowserForward:
break;
case Keys.BrowserHome:
break;
case Keys.BrowserRefresh:
break;
case Keys.BrowserSearch:
break;
case Keys.BrowserStop:
break;
case Keys.C:
this.CopySelectedFiles();
break;
case Keys.Cancel:
break;
case Keys.Capital:
break;
case Keys.Clear:
break;
case Keys.Control:
break;
case Keys.ControlKey:
break;
case Keys.Crsel:
break;
case Keys.D:
DeSelectAllItems();
break;
case Keys.D0:
break;
case Keys.D1:
break;
case Keys.D2:
break;
case Keys.D3:
break;
case Keys.D4:
break;
case Keys.D5:
break;
case Keys.D6:
break;
case Keys.D7:
break;
case Keys.D8:
break;
case Keys.D9:
break;
case Keys.Decimal:
break;
case Keys.Delete:
break;
case Keys.Divide:
break;
case Keys.Down:
break;
case Keys.E:
break;
case Keys.End:
break;
case Keys.Enter:
break;
case Keys.EraseEof:
break;
case Keys.Escape:
break;
case Keys.Execute:
break;
case Keys.Exsel:
break;
case Keys.F:
break;
case Keys.F1:
break;
case Keys.F10:
break;
case Keys.F11:
break;
case Keys.F12:
break;
case Keys.F13:
break;
case Keys.F14:
break;
case Keys.F15:
break;
case Keys.F16:
break;
case Keys.F17:
break;
case Keys.F18:
break;
case Keys.F19:
break;
case Keys.F2:
break;
case Keys.F20:
break;
case Keys.F21:
break;
case Keys.F22:
break;
case Keys.F23:
break;
case Keys.F24:
break;
case Keys.F3:
break;
case Keys.F4:
break;
case Keys.F5:
break;
case Keys.F6:
break;
case Keys.F7:
break;
case Keys.F8:
break;
case Keys.F9:
break;
case Keys.FinalMode:
break;
case Keys.G:
break;
case Keys.H:
break;
case Keys.HanguelMode:
break;
case Keys.HanjaMode:
break;
case Keys.Help:
break;
case Keys.Home:
break;
case Keys.I:
InvertSelection();
break;
case Keys.IMEAccept:
break;
case Keys.IMEConvert:
break;
case Keys.IMEModeChange:
break;
case Keys.IMENonconvert:
break;
case Keys.Insert:
break;
case Keys.J:
break;
case Keys.JunjaMode:
break;
case Keys.K:
break;
case Keys.KeyCode:
break;
case Keys.L:
break;
case Keys.LButton:
break;
case Keys.LControlKey:
break;
case Keys.LMenu:
break;
case Keys.LShiftKey:
break;
case Keys.LWin:
break;
case Keys.LaunchApplication1:
break;
case Keys.LaunchApplication2:
break;
case Keys.LaunchMail:
break;
case Keys.Left:
break;
case Keys.LineFeed:
break;
case Keys.M:
break;
case Keys.MButton:
break;
case Keys.MediaNextTrack:
break;
case Keys.MediaPlayPause:
break;
case Keys.MediaPreviousTrack:
break;
case Keys.MediaStop:
break;
case Keys.Menu:
break;
case Keys.Modifiers:
break;
case Keys.Multiply:
break;
case Keys.N:
break;
case Keys.NoName:
break;
case Keys.None:
break;
case Keys.NumLock:
break;
case Keys.NumPad0:
break;
case Keys.NumPad1:
break;
case Keys.NumPad2:
break;
case Keys.NumPad3:
break;
case Keys.NumPad4:
break;
case Keys.NumPad5:
break;
case Keys.NumPad6:
break;
case Keys.NumPad7:
break;
case Keys.NumPad8:
break;
case Keys.NumPad9:
break;
case Keys.O:
break;
case Keys.Oem1:
break;
case Keys.Oem102:
break;
case Keys.Oem2:
break;
case Keys.Oem3:
break;
case Keys.Oem4:
break;
case Keys.Oem5:
break;
case Keys.Oem6:
break;
case Keys.Oem7:
break;
case Keys.Oem8:
break;
case Keys.OemClear:
break;
case Keys.OemMinus:
break;
case Keys.OemPeriod:
break;
case Keys.Oemcomma:
break;
case Keys.Oemplus:
break;
case Keys.P:
break;
case Keys.Pa1:
break;
case Keys.PageDown:
break;
case Keys.PageUp:
break;
case Keys.Pause:
break;
case Keys.Play:
break;
case Keys.Print:
break;
case Keys.PrintScreen:
break;
case Keys.ProcessKey:
break;
case Keys.Q:
break;
case Keys.R:
break;
case Keys.RButton:
break;
case Keys.RControlKey:
break;
case Keys.RMenu:
break;
case Keys.RShiftKey:
break;
case Keys.RWin:
break;
case Keys.Right:
break;
case Keys.S:
break;
case Keys.Scroll:
break;
case Keys.Select:
break;
case Keys.SelectMedia:
break;
case Keys.Separator:
break;
case Keys.Shift:
break;
case Keys.ShiftKey:
break;
case Keys.Space:
break;
case Keys.Subtract:
break;
case Keys.T:
break;
case Keys.Tab:
break;
case Keys.U:
//var copy = new AsyncUnbuffCopy();
//copy.AsyncCopyFileUnbuffered(@"J:\Downloads\advinst.msi", @"J:\Downloads\advinst(2).msi", true, false, false, 4096*5, false, 100000);
break;
case Keys.Up:
break;
case Keys.V:
this.PasteAvailableFiles();
break;
case Keys.VolumeDown:
break;
case Keys.VolumeMute:
break;
case Keys.VolumeUp:
break;
case Keys.W:
break;
case Keys.X:
this.CutSelectedFiles();
break;
case Keys.XButton1:
break;
case Keys.XButton2:
break;
case Keys.Y:
break;
case Keys.Z:
break;
case Keys.Zoom:
break;
default:
break;
}
} else {
if (e == Keys.Back || e == Keys.BrowserBack) {
this.NavigateParent();
}
if (e == Keys.Escape) {
foreach (var index in this._CuttedIndexes) {
this._IIListView.SetItemState(index, LVIF.LVIF_STATE, LVIS.LVIS_CUT, 0);
}
if (this._CuttedIndexes.Any()) {
this._CuttedIndexes.Clear();
F.Clipboard.Clear();
}
}
if (e == Keys.Delete) {
this.DeleteSelectedFiles((Control.ModifierKeys & Keys.Shift) != Keys.Shift);
}
if (e == Keys.F5) {
this.RefreshContents();
}
}
return true;
}