111,094
社区成员




lanq_newReport_tsmiDelete.ShortcutKeys = Keys.Delete;
/// <summary>
/// 控件设计器
/// </summary>
public class YourControlDesigner : System.Windows.Forms.Design.ControlDesigner
{
public YourControlDesigner()
{
}
public override SelectionRules SelectionRules
{
get
{
SelectionRules rules = SelectionRules.Visible | SelectionRules.Moveable |
SelectionRules.LeftSizeable | SelectionRules.RightSizeable;
return rules;
}
}
}
protected override bool ProcessCmdKey(ref Message msg,Keys keyData)
{
int index;
if (base.ProcessCmdKey(ref msg, keyData)) {
return true;
}
bool isInRenameMode = renameTab != null || renameTabItem != null;
switch (keyData) {
case Keys.Home:
if (activeTab.Items.Count > 0 && !isInRenameMode) {
activeTab.ChoosedItem = activeTab.Items[0];
EnsureVisible(activeTab.ChoosedItem);
Refresh();
}
break;
case Keys.End:
if (activeTab.Items.Count > 0 && !isInRenameMode) {
activeTab.ChoosedItem = activeTab.Items[activeTab.Items.Count - 1];
EnsureVisible(activeTab.ChoosedItem);
Refresh();
}
break;
case Keys.PageUp:
if (activeTab.Items.Count > 0 && !isInRenameMode) {
index = Math.Max(0, activeTab.Items.IndexOf(activeTab.ChoosedItem) - scrollBar.LargeChange);
activeTab.ChoosedItem = activeTab.Items[index];
EnsureVisible(activeTab.ChoosedItem);
Refresh();
}
break;
case Keys.PageDown:
if (activeTab.Items.Count > 0 && !isInRenameMode) {
index = Math.Min(activeTab.Items.Count - 1, activeTab.Items.IndexOf(activeTab.ChoosedItem) + scrollBar.LargeChange);
activeTab.ChoosedItem = activeTab.Items[index];
EnsureVisible(activeTab.ChoosedItem);
Refresh();
}
break;
case Keys.Down:
if (activeTab.Items.Count > 0 && !isInRenameMode) {
if (activeTab.ChoosedItem != null) {
activeTab.ChoosedItem = activeTab.Items[Math.Min(activeTab.Items.Count - 1, activeTab.Items.IndexOf(activeTab.ChoosedItem) + 1)];
} else {
activeTab.ChoosedItem = activeTab.Items[0];
}
activeTab.SelectedItem = null;
EnsureVisible(activeTab.ChoosedItem);
Refresh();
}
return true;
case Keys.Up:
if (activeTab.Items.Count > 0 && !isInRenameMode) {
if (activeTab.ChoosedItem != null) {
activeTab.ChoosedItem = activeTab.Items[Math.Max(0, activeTab.Items.IndexOf(activeTab.ChoosedItem) - 1)];
} else {
activeTab.ChoosedItem = activeTab.Items[0];
}
activeTab.SelectedItem = null;
EnsureVisible(activeTab.ChoosedItem);
Refresh();
}
return true;
case Keys.Control | Keys.Up:
ActiveTab = Tabs[Math.Max(0, Tabs.IndexOf(ActiveTab) - 1)];
Refresh();
return true;
case Keys.Control | Keys.Down:
ActiveTab = Tabs[Math.Min(Tabs.Count - 1, Tabs.IndexOf(ActiveTab) + 1)];
Refresh();
return true;
case Keys.Return:
if (renameTab != null) {
renameTab.Name = renameTextBox.Text;
ExitRenameMode();
} else if (renameTabItem != null) {
renameTabItem.Name = renameTextBox.Text;
ExitRenameMode();
}
return true;
case Keys.Escape:
if (renameTab != null) {
if (doAddTab) {
Tabs.RemoveAt(Tabs.Count - 1);
renameTab = null;
renameTextBox.Visible = false;
doAddTab = false;
Refresh();
} else {
ExitRenameMode();
}
} else if (renameTabItem != null) {
ExitRenameMode();
}
return true;
}
return false;
}