• SharpDevelop 笔记


    1. 下载地址: http://jaist.dl.sourceforge.net/project/sharpdevelop/

    2. 使用 VS2012 去掉编译不通过的 Test ,其它可以运行调试。

    3. 入口: http://www.cnblogs.com/taxhaven/articles/1725186.html

    4. 它的窗体设计器果然使用的是 微软开发的窗体设计器:

      事件绑定在: SharpDevelop_4.3.1.9430_SourcesrcMainBaseProjectSrcGuiWorkbenchLayoutsAvalonWorkbenchWindow.cs

        

        viewTabControl.SelectionChanged += delegate {
             UpdateActiveViewContent();
          };

    之后会执行:SharpDevelop_4.3.1.9430_SourcesrcAddInsDisplayBindingsFormsDesignerProjectSrcDesignerViewContent.cs
      

      

     1         void LoadDesigner()
     2         {
     3             LoggingService.Info("Form Designer: BEGIN INITIALIZE");
     4             
     5             DefaultServiceContainer serviceContainer = new DefaultServiceContainer();
     6             serviceContainer.AddService(typeof(System.Windows.Forms.Design.IUIService), new UIService());
     7             serviceContainer.AddService(typeof(System.Drawing.Design.IToolboxService), ToolboxProvider.ToolboxService);
     8             
     9             serviceContainer.AddService(typeof(IHelpService), new HelpService());
    10             serviceContainer.AddService(typeof(System.Drawing.Design.IPropertyValueUIService), new PropertyValueUIService());
    11             
    12             serviceContainer.AddService(typeof(System.ComponentModel.Design.IResourceService), new DesignerResourceService(this.resourceStore));
    13             AmbientProperties ambientProperties = new AmbientProperties();
    14             serviceContainer.AddService(typeof(AmbientProperties), ambientProperties);
    15             this.typeResolutionService = new TypeResolutionService(this.PrimaryFileName);
    16             serviceContainer.AddService(typeof(ITypeResolutionService), this.typeResolutionService);
    17             serviceContainer.AddService(typeof(DesignerOptionService), new SharpDevelopDesignerOptionService());
    18             serviceContainer.AddService(typeof(ITypeDiscoveryService), new TypeDiscoveryService());
    19             serviceContainer.AddService(typeof(MemberRelationshipService), new DefaultMemberRelationshipService());
    20             serviceContainer.AddService(typeof(ProjectResourceService), CreateProjectResourceService());
    21             
    22             // Provide the ImageResourceEditor for all Image and Icon properties
    23             this.addedTypeDescriptionProviders.Add(typeof(Image), TypeDescriptor.AddAttributes(typeof(Image), new EditorAttribute(typeof(ImageResourceEditor), typeof(System.Drawing.Design.UITypeEditor))));
    24             this.addedTypeDescriptionProviders.Add(typeof(Icon), TypeDescriptor.AddAttributes(typeof(Icon), new EditorAttribute(typeof(ImageResourceEditor), typeof(System.Drawing.Design.UITypeEditor))));
    25             
    26             if (generator.CodeDomProvider != null) {
    27                 serviceContainer.AddService(typeof(System.CodeDom.Compiler.CodeDomProvider), generator.CodeDomProvider);
    28             }
    29             
    30             designSurface = CreateDesignSurface(serviceContainer);
    31             designSurface.Loading += this.DesignerLoading;
    32             designSurface.Loaded += this.DesignerLoaded;
    33             designSurface.Flushed += this.DesignerFlushed;
    34             designSurface.Unloading += this.DesignerUnloading;
    35             
    36             serviceContainer.AddService(typeof(System.ComponentModel.Design.IMenuCommandService), new ICSharpCode.FormsDesigner.Services.MenuCommandService(this, designSurface));
    37             ICSharpCode.FormsDesigner.Services.EventBindingService eventBindingService = new ICSharpCode.FormsDesigner.Services.EventBindingService(this, designSurface);
    38             serviceContainer.AddService(typeof(System.ComponentModel.Design.IEventBindingService), eventBindingService);
    39             
    40             this.loader = loaderProvider.CreateLoader(generator);
    41             designSurface.BeginLoad(this.loader);
    42             
    43             if (!designSurface.IsLoaded) {
    44                 throw new FormsDesignerLoadException(FormatLoadErrors(designSurface));
    45             }
    46             
    47             undoEngine = new FormsDesignerUndoEngine(Host);
    48             serviceContainer.AddService(typeof(UndoEngine), undoEngine);
    49             
    50             IComponentChangeService componentChangeService = (IComponentChangeService)designSurface.GetService(typeof(IComponentChangeService));
    51             componentChangeService.ComponentChanged += ComponentChanged;
    52             componentChangeService.ComponentAdded   += ComponentListChanged;
    53             componentChangeService.ComponentRemoved += ComponentListChanged;
    54             componentChangeService.ComponentRename  += ComponentListChanged;
    55             this.Host.TransactionClosed += TransactionClose;
    56             
    57             ISelectionService selectionService = (ISelectionService)designSurface.GetService(typeof(ISelectionService));
    58             selectionService.SelectionChanged  += SelectionChangedHandler;
    59             
    60             if (IsTabOrderMode) { // fixes SD2-1015
    61                 tabOrderMode = false; // let ShowTabOrder call the designer command again
    62                 ShowTabOrder();
    63             }
    64             
    65             UpdatePropertyPad();
    66             
    67             hasUnmergedChanges = false;
    68             
    69             LoggingService.Info("Form Designer: END INITIALIZE");
    70         }
    View Code

    如果我们添加自定义控件,需要捕获鼠标拖动控件放到窗体上完成之后的事件。

  • 相关阅读:
    P2437 蜜蜂路线题解
    P1044 栈题解
    P1002 过河卒题解
    P1433 吃奶酪题解
    组合数公式
    P1036 选数题解
    十进制转二进制方法整理
    golang学习笔记 ---工作区与GOPATH
    golang学习笔记---闭包
    golang学习笔记---类型
  • 原文地址:https://www.cnblogs.com/newsea/p/3250218.html
Copyright © 2020-2023  润新知