创建 Windows 窗体工具箱控件

您所在的位置:网站首页 windsys工具箱 创建 Windows 窗体工具箱控件

创建 Windows 窗体工具箱控件

#创建 Windows 窗体工具箱控件| 来源: 网络整理| 查看: 265

创建 Windows 窗体工具箱控件 项目 02/23/2023

适用于:Visual Studio Visual Studio for Mac Visual Studio Code

Visual Studio 扩展性工具 (VS SDK) 中包含的 Windows 窗体工具箱控件项模板可用于创建在安装扩展时自动添加的 工具箱 控件。 本演练演示如何使用模板创建可以分发给其他用户的简单计数器控件。

先决条件

从 Visual Studio 2015 开始,你不会从下载中心安装 Visual Studio SDK。 它作为 Visual Studio 设置中的可选功能包含在内。 也可稍后安装 VS SDK。 有关详细信息,请参阅 安装 Visual Studio SDK。

创建工具箱控件

Windows 窗体工具箱控件模板创建未定义的用户控件,并提供将控件添加到 工具箱所需的所有功能。

使用 Windows 窗体工具箱控件创建扩展

创建名为 MyWinFormsControl. 的 VSIX 项目。 可以通过搜索“vsix”在 “新建项目 ”对话框中找到 VSIX 项目模板。

项目打开时,添加一个名为Counter“Windows 窗体工具箱控件”项模板。 在“解决方案资源管理器”中,右键单击项目节点并选择“添加”>“新建项” 。 在“添加新项”对话框中,转到“Visual C#>扩展性”并选择“Windows 窗体工具箱控件”

这会添加一个用户控件、一个 ProvideToolboxControlAttributeRegistrationAttribute 用于将控件放置在 工具箱中,以及用于部署的 VSIX 清单中的 Microsoft.VisualStudio.ToolboxControl 资产条目。

为控件生成用户界面

该 Counter 控件需要两个子控件:一个 Label 显示当前计数,一个 Button 将计数重置为 0。 不需要其他子控件,因为调用方将以编程方式递增计数器。

构建用户界面

在 解决方案资源管理器中,双击 Counter.cs 以在设计器中打开它。

删除添加 Windows 窗体工具箱控件项模板时默认包含的 “单击此处! ”按钮。

在 工具箱中,将 Label 控件拖到 Button 设计图面下方的控件。

将整体用户控件的大小调整为 150,50 像素,并将按钮控件的大小调整为 50,20 像素。

在 “属性” 窗口中,为设计图面上的控件设置以下值。

控制 属性 值 Label1 Text "" Button1 名称 btnReset Button1 文本 重置 编写用户控件代码

控件 Counter 将公开一种方法来递增计数器、每当计数器递增时引发的事件、 重置 按钮和三个属性来存储当前计数、显示文本以及是显示还是隐藏 “重置 ”按钮。 ProvideToolboxControl 特性确定 控件会出现在“工具箱”Counter 的什么位置。

对用户控件进行编码

双击窗体,在代码窗口中打开其加载事件处理程序。

在事件处理程序方法上方,在控件类中创建一个整数来存储计数器值和一个用于存储显示文本的字符串,如以下示例所示。

int currentValue; string displayText;

创建以下公共属性声明。

public int Value { get { return currentValue; } } public string Message { get { return displayText; } set { displayText = value; } } public bool ShowReset { get { return btnReset.Visible; } set { btnReset.Visible = value; } }

调用方可以访问这些属性来获取和设置计数器的显示文本,并显示或隐藏 “重置 ”按钮。 调用方可以获取只读 Value 属性的当前值,但它们不能直接设置该值。

将以下代码放入 Load 控件的事件中。

private void Counter_Load(object sender, EventArgs e) { currentValue = 0; label1.Text = Message + Value; }

在事件中Load设置标签文本可使目标属性在应用其值之前加载。 在构造函数中设置 标签 文本将导致空 标签。

创建以下公共方法以递增计数器。

public void Increment() { currentValue++; label1.Text = displayText + Value; Incremented(this, EventArgs.Empty); }

将 Incremented 事件的声明添加到控件类。

public event EventHandler Incremented;

调用方可以将处理程序添加到此事件,以响应计数器值的变化。

返回到设计视图,然后双击 “重置 ”按钮以生成 btnReset_Click 事件处理程序。 然后,按以下示例所示填充它。

private void btnReset_Click(object sender, EventArgs e) { currentValue = 0; label1.Text = displayText + Value; }

在类定义正上方的 ProvideToolboxControl 特性声明中,将第一个参数的值从 "MyWinFormsControl.Counter" 改为 "General"。 这会设置将在“工具箱” 中托管控件的项组名称。

以下示例演示了 ProvideToolboxControl 特性和调整后的类定义。

[ProvideToolboxControl("General", false)] public partial class Counter : UserControl 测试控件

若要测试 工具箱 控件,请先在开发环境中对其进行测试,然后在编译的应用程序中对其进行测试。

测试控件

按 F5开始调试。

此命令生成项目,并打开安装了控件的 Visual Studio 的第二个实验实例。

在 Visual Studio 的实验实例中,创建 Windows 窗体应用程序 项目。

在 解决方案资源管理器中,双击 Form1.cs 以在设计器中打开它(如果尚未打开)。

在 工具箱中,控件 Counter 应显示在 “常规 ”部分中。

将 Counter 控件拖到窗体,然后选择它。 属性和属性将显示在“属性”窗口中,以及继承自UserControl的属性。ValueMessageShowReset

将 Message 属性设置为 Count:。

将 Button 控件拖到窗体,然后将按钮的名称和文本属性设置为 Test。

双击按钮以在代码视图中打开 Form1.cs ,并创建单击处理程序。

在单击处理程序中,调用 counter1.Increment()。

在构造函数中,在调用 InitializeComponent后键入 counter1``.``Incremented += ,然后按 Tab 两次。

Visual Studio 为 counter1.Incremented 事件生成窗体级处理程序。

Throw突出显示事件处理程序中的语句,键入mbox,然后按 Tab 两次,从 mbox 代码片段生成消息框。

在下一行中,添加以下 if/else 块以设置 “重置 ”按钮的可见性。

if (counter1.Value < 5) counter1.ShowReset = false; else counter1.ShowReset = true;

按 F5 。

窗体随即打开。 该 Counter 控件显示以下文本。

计数:0

选择“测试”。

计数器递增,Visual Studio 会显示一个消息框。

关闭消息框。

“重置”按钮消失。

选择 “测试 ”,直到计数器每次达到 5 关闭消息框。

“ 重置 ”按钮再次出现。

选择“重置”。

计数器将重置为 0。

后续步骤

生成 工具箱 控件时,Visual Studio 会在项目的 \bin\debug\ 文件夹中创建名为 ProjectName.vsix 的文件。 可以通过将 .vsix 文件上传到网络或网站来部署控件。 当用户打开 .vsix 文件时,该控件将安装并添加到用户的计算机上的 Visual Studio 工具箱 。 或者,可以将 .vsix 文件上传到 Visual Studio Marketplace ,以便用户可以通过在 “工具>扩展和更新 ”对话框中浏览找到该文件。

另请参阅 扩展 Visual Studio 的其他部分 创建 WPF 工具箱控件 扩展 Visual Studio 的其他部分 Windows 窗体控件开发基础知识


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3