Stimulsoft Reports.Net示例演示:在WinForms 类别中向 表设计器添加自定义组件

此示例显示如何创建自定义组件并将其添加到 表设计器。自定义组件提供了在 表设计器中添加组件及其参数并在 表中使用的功能。

此示例显示如何创建自定义组件并将其添加到 表设计器。自定义组件提供了在 表设计器中添加组件及其参数并在 表中使用的功能。例如,您可以添加 stimulsoft 告中不存在的图表。

首先,指定属性及其值:

[StiServiceBitmap(typeof(MyCustomComponent), "CustomComponent.MyCustomComponent1.gif")][StiToolbox(true)][StiContextTool(typeof(IStiShift))][StiContextTool(typeof(IStiGrowToHeight))][StiDesigner(typeof(MyCustomComponentDesigner))][StiV1Builder(typeof(MyCustomComponentV1Builder))][StiV2Builder(typeof(MyCustomComponentV2Builder))][StiGdiPainter(typeof(MyCustomComponentGdiPainter))]...

接下来,创建一个MyCustomComponent类并指定继承的类。此外,覆盖所需的组件属性:

...public class MyCustomComponent : StiComponent, IStiBorder, IStiBrush{#region StiComponent override/// <summary>/// Gets value to sort a position in the toolbox./// </summary>public override int ToolboxPosition{get{return 500;}}/// <summary>/// Gets a localized name of the component category./// </summary>public override string LocalizedCategory{get{return StiLocalization.Get("Report", "Components");}}/// <summary>/// Gets a localized component name./// </summary>public override string LocalizedName{get{return "MyCustomComponent1";}}#endregion...

向组件添加新属性 -Border和Brush,并设置它们的默认值。

...#region IStiBorderprivate StiBorder border = new StiBorder();/// <summary>/// Gets or sets a frame of the component./// </summary>[StiCategory("Appearance")][StiSerializable][Description("Gets or sets frame of the component.")]public StiBorder Border{get{return border;}set{border = value;}}#endregion#region IStiBrushprivate StiBrush brush = new StiSolidBrush(Color.Transparent);/// <summary>/// Gets or sets a brush to fill a component./// </summary>[StiCategory("Appearance")][StiSerializable][Description("Gets or sets a brush to fill a component.")]public StiBrush Brush{get{return brush;}set{brush = value;}}#endregion...

向该MyCustomComponent类型的新组件添加必要的构造函数:

...#region this/// <summary>/// Creates a new component of the type MyCustomComponent./// </summary>public MyCustomComponent() : this(RectangleD.Empty){}/// <summary>/// Creates a new component of the type MyCustomComponent./// </summary>/// <param name="rect">The rectangle describes size and position of the component.</param>public MyCustomComponent(RectangleD rect) : base(rect){PlaceOnToolbox = true;}#endregion}

该AddCustomComponent()方法将自定义组件添加到StiConfig.Services集合中,现在我们可以在 表设计器工具栏中找到它:

private static void AddCustomComponent(){StiConfig.Load();StiOptions.Engine.ReferencedAssemblies = new string[] {"System.Dll","System.Drawing.Dll","System.Windows.Forms.Dll","System.Data.Dll","System.Xml.Dll","Stimulsoft.Controls.Dll","Stimulsoft.Base.Dll","Stimulsoft.Report.Dll",#region Add reference to your assembly"CustomComponent.exe"#endregion};StiConfig.Services.Add(new MyCustomComponent());StiConfig.Services.Add(new MyCustomComponentWithDataSource());StiConfig.Services.Add(new MyCustomComponentWithExpression());StiConfig.Save();}

在下面的屏幕截图中,您可以看到示例代码的结果:

Stimulsoft Reports.Net教程:在WinForms 类别中向 表设计器添加自定义组件
标签:

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年8月10日
下一篇 2021年8月10日

相关推荐

发表回复

登录后才能评论