📄 formscommands.cs
字号:
// <file>
// <copyright see="prj:///doc/copyright.txt"/>
// <license see="prj:///doc/license.txt"/>
// <owner name="Mike Krüger" email="mike@icsharpcode.net"/>
// <version>$Revision: 1047 $</version>
// </file>
using System;
using System.IO;
using System.Threading;
using System.Drawing;
using System.Drawing.Printing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Windows.Forms.Design;
using System.Diagnostics;
using System.Text;
using System.ComponentModel.Design;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.TextEditor.Document;
using ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor;
using ICSharpCode.TextEditor;
namespace ICSharpCode.FormsDesigner.Commands
{
/// <summary>
/// This is the base class for all designer menu commands
/// </summary>
public abstract class AbstractFormsDesignerCommand : AbstractMenuCommand
{
public abstract CommandID CommandID {
get;
}
protected virtual bool CanExecuteCommand(IDesignerHost host)
{
return true;
}
FormsDesignerViewContent FormDesigner {
get {
IWorkbenchWindow window = WorkbenchSingleton.Workbench.ActiveWorkbenchWindow;
if (window == null) {
return null;
}
return window.ActiveViewContent as FormsDesignerViewContent;
}
}
public override void Run()
{
try {
FormsDesignerViewContent formDesigner = FormDesigner;
if (formDesigner != null && CanExecuteCommand(formDesigner.Host)) {
IMenuCommandService menuCommandService = (IMenuCommandService)formDesigner.Host.GetService(typeof(IMenuCommandService));
menuCommandService.GlobalInvoke(CommandID);
}
} catch (Exception e) {
MessageService.ShowError(e);
}
}
}
public class ViewCode : AbstractMenuCommand
{
FormsDesignerViewContent FormDesigner {
get {
IWorkbenchWindow window = WorkbenchSingleton.Workbench.ActiveWorkbenchWindow;
if (window == null) {
return null;
}
return window.ActiveViewContent as FormsDesignerViewContent;
}
}
public override void Run()
{
IWorkbenchWindow window = WorkbenchSingleton.Workbench.ActiveWorkbenchWindow;
if (window == null) {
return;
}
FormsDesignerViewContent formDesigner = FormDesigner;
if (formDesigner != null) {
formDesigner.ShowSourceCode();
}
}
}
public class ShowProperties : AbstractMenuCommand
{
public override void Run()
{
PadDescriptor padContent = WorkbenchSingleton.Workbench.GetPad(typeof(ICSharpCode.SharpDevelop.Gui.PropertyPad));
if (padContent != null) {
padContent.BringPadToFront();
}
}
}
public class DesignerVerbSubmenuBuilder : ISubmenuBuilder
{
public ToolStripItem[] BuildSubmenu(Codon codon, object owner)
{
IMenuCommandService menuCommandService = (IMenuCommandService)owner;
ArrayList items = new ArrayList();
foreach (DesignerVerb verb in menuCommandService.Verbs) {
items.Add(new ContextMenuCommand(verb));
}
// add separator at the end of custom designer verbs
if (items.Count > 0) {
items.Add(new MenuSeparator());
}
return (ToolStripItem[])items.ToArray(typeof(ToolStripItem));
}
class ContextMenuCommand : ICSharpCode.Core.MenuCommand
{
DesignerVerb verb;
public ContextMenuCommand(DesignerVerb verb) : base(verb.Text)
{
this.Enabled = verb.Enabled;
// this.Checked = verb.Checked;
this.verb = verb;
Click += new EventHandler(InvokeCommand);
}
void InvokeCommand(object sender, EventArgs e)
{
try {
verb.Invoke();
} catch (Exception ex) {
MessageService.ShowError(ex);
}
}
}
}
#region Align Commands
public class AlignToGrid : AbstractFormsDesignerCommand
{
public override CommandID CommandID {
get {
return StandardCommands.AlignToGrid;
}
}
}
public class AlignLeft : AbstractFormsDesignerCommand
{
public override CommandID CommandID {
get {
return StandardCommands.AlignLeft;
}
}
}
public class AlignRight : AbstractFormsDesignerCommand
{
public override CommandID CommandID {
get {
return StandardCommands.AlignRight;
}
}
}
public class AlignTop : AbstractFormsDesignerCommand
{
public override CommandID CommandID {
get {
return StandardCommands.AlignTop;
}
}
}
public class AlignBottom : AbstractFormsDesignerCommand
{
public override CommandID CommandID {
get {
return StandardCommands.AlignBottom;
}
}
}
public class AlignHorizontalCenters : AbstractFormsDesignerCommand
{
public override CommandID CommandID {
get {
return StandardCommands.AlignHorizontalCenters;
}
}
}
public class AlignVerticalCenters : AbstractFormsDesignerCommand
{
public override CommandID CommandID {
get {
return StandardCommands.AlignVerticalCenters;
}
}
}
#endregion
#region Make Same Size Commands
public class SizeToGrid : AbstractFormsDesignerCommand
{
public override CommandID CommandID {
get {
return StandardCommands.SizeToGrid;
}
}
}
public class SizeToControl : AbstractFormsDesignerCommand
{
public override CommandID CommandID {
get {
return StandardCommands.SizeToControl;
}
}
}
public class SizeToControlHeight : AbstractFormsDesignerCommand
{
public override CommandID CommandID {
get {
return StandardCommands.SizeToControlHeight;
}
}
}
public class SizeToControlWidth : AbstractFormsDesignerCommand
{
public override CommandID CommandID {
get {
return StandardCommands.SizeToControlWidth;
}
}
}
#endregion
#region Horizontal Spacing Commands
public class HorizSpaceMakeEqual : AbstractFormsDesignerCommand
{
public override CommandID CommandID {
get {
return StandardCommands.HorizSpaceMakeEqual;
}
}
protected override bool CanExecuteCommand(IDesignerHost host)
{
ISelectionService selectionService = (ISelectionService)host.GetService(typeof(ISelectionService));
return selectionService.SelectionCount > 1;
}
}
public class HorizSpaceIncrease : AbstractFormsDesignerCommand
{
public override CommandID CommandID {
get {
return StandardCommands.HorizSpaceIncrease;
}
}
}
public class HorizSpaceDecrease : AbstractFormsDesignerCommand
{
public override CommandID CommandID {
get {
return StandardCommands.HorizSpaceDecrease;
}
}
}
public class HorizSpaceConcatenate : AbstractFormsDesignerCommand
{
public override CommandID CommandID {
get {
return StandardCommands.HorizSpaceConcatenate;
}
}
}
#endregion
#region Vertical Spacing Commands
public class VertSpaceMakeEqual : AbstractFormsDesignerCommand
{
public override CommandID CommandID {
get {
return StandardCommands.VertSpaceMakeEqual;
}
}
protected override bool CanExecuteCommand(IDesignerHost host)
{
ISelectionService selectionService = (ISelectionService)host.GetService(typeof(ISelectionService));
return selectionService.SelectionCount > 1;
}
}
public class VertSpaceIncrease : AbstractFormsDesignerCommand
{
public override CommandID CommandID {
get {
return StandardCommands.VertSpaceIncrease;
}
}
}
public class VertSpaceDecrease : AbstractFormsDesignerCommand
{
public override CommandID CommandID {
get {
return StandardCommands.VertSpaceDecrease;
}
}
}
public class VertSpaceConcatenate : AbstractFormsDesignerCommand
{
public override CommandID CommandID {
get {
return StandardCommands.VertSpaceConcatenate;
}
}
}
#endregion
#region Center Commands
public class CenterHorizontally : AbstractFormsDesignerCommand
{
public override CommandID CommandID {
get {
return StandardCommands.CenterHorizontally;
}
}
}
public class CenterVertically : AbstractFormsDesignerCommand
{
public override CommandID CommandID {
get {
return StandardCommands.CenterVertically;
}
}
}
#endregion
#region Order Commands
public class SendToBack : AbstractFormsDesignerCommand
{
public override CommandID CommandID {
get {
return StandardCommands.SendToBack;
}
}
}
public class BringToFront : AbstractFormsDesignerCommand
{
public override CommandID CommandID {
get {
return StandardCommands.BringToFront;
}
}
}
#endregion
#region Tray Commands
public class LineUpIcons : AbstractFormsDesignerCommand
{
public override CommandID CommandID {
get {
return StandardCommands.LineupIcons;
}
}
}
public class ShowLargeIcons : AbstractCheckableMenuCommand
{
FormsDesignerViewContent FormDesigner {
get {
IWorkbenchWindow window = WorkbenchSingleton.Workbench.ActiveWorkbenchWindow;
if (window == null) {
return null;
}
return window.ActiveViewContent as FormsDesignerViewContent;
}
}
public override bool IsChecked {
get {
ComponentTray tray = Tray;
if (tray != null) {
return tray.ShowLargeIcons;
}
return false;
}
set {
ComponentTray tray = Tray;
if (tray != null) {
tray.ShowLargeIcons = value;
}
}
}
ComponentTray Tray {
get {
FormsDesignerViewContent formDesigner = FormDesigner;
if (formDesigner != null) {
return formDesigner.Host.GetService(typeof(ComponentTray)) as ComponentTray;
}
return null;
}
}
public override void Run()
{
}
}
#endregion
#region Global Commands
public class LockControls : AbstractFormsDesignerCommand
{
public override CommandID CommandID {
get {
return StandardCommands.LockControls;
}
}
}
/// <summary>
/// Displays the tab order mode.
/// </summary>
public class ViewTabOrder : AbstractCheckableMenuCommand
{
public override bool IsChecked {
get {
FormsDesignerViewContent formDesigner = FormDesigner;
if (formDesigner != null) {
return formDesigner.IsTabOrderMode;
}
return false;
}
set {
SetTabOrder(value);
}
}
FormsDesignerViewContent FormDesigner {
get {
IWorkbenchWindow window = WorkbenchSingleton.Workbench.ActiveWorkbenchWindow;
if (window == null) {
return null;
}
return window.ActiveViewContent as FormsDesignerViewContent;
}
}
void SetTabOrder(bool show)
{
FormsDesignerViewContent formDesigner = FormDesigner;
if (formDesigner != null) {
if (show) {
formDesigner.ShowTabOrder();
} else {
formDesigner.HideTabOrder();
}
}
}
}
#endregion
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -