CLR自定义.NET控件制作(1)——制作简单的自定义控件

由于项目需要,最近一段时间一直研究.NET控件的制作,从开始对控件一无所知,到现在做出了自定义控件,收获颇丰,现将这段时间的收获及自定义控件的制作过程整理一下。

自定义控件是由CLR工程生成的,微软提供了框架,开发者可以在上面添加自己定义的类型。首先我们新建一个CLR工程:

这里选择建立windows窗体控件库,工程建立之后,发现windows自动生成了好多代码,这就是好处之一,生成的MyViewControl.h就是我们的自定义控件,双击打开出现一个Control视图,这相当于C#中的form窗体。

在工程编译生成之前,我们还要设置一下工程属性信息,在属性——配置属性——常规中,字符集选择“使用多字节字符集”,公共语言运行库支持选择” 公共语言运行库支持(/clr)”;在C/C++ ——优化属性选择“禁用(0d)”。

为了便于观察,我们将MyViewControl的属性的BackColor设置为蓝色。

右键工程,生成,注意选择release版本。在生成的release文件夹中你会发现有一个为“MyView.dll”的文件,这就是我们的自定义控件。

下面我们测试一下我们的自定义控件,新建一个C#的windows程序库,打开form1窗体,打开工具箱,在空白处右击点击“选择项”,打开选择工具对话框,点击“浏览”找到刚才生成的MyView.dll文件,打开,确定,你会发现在工具箱中多了一个蓝色锯齿图标的工具,这就是我们刚才生成的自定义控件。

将这个控件拖到form窗体上,你会发现有一个蓝色的控件,虽然他没有任何功能,但是你还可以用鼠标拖着随意的放。

转载于:https://www.cnblogs.com/cjingzm/archive/2011/07/14/2106858.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
自定义 WPF 日历控件,您可以继承 WPF 自带的 Calendar 类,然后在其中添加自己的样式和功能。 以下是一个简单的示例,演示如何创建一个自定义的 WPF 日历控件: 1. 创建一个新的 WPF 控件库项目。 2. 在项目中添加一个新的类,命名为 CustomCalendar。 3. 让 CustomCalendar 类继承自 WPF 自带的 Calendar 类。 ``` public class CustomCalendar : Calendar { // Add custom functionality here } ``` 4. 在 CustomCalendar 类中添加自定义的样式和模板。这可以通过在 XAML 中定义一个新的 ControlTemplate 来完成。 ``` <Style TargetType="{x:Type local:CustomCalendar}"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type local:CustomCalendar}"> <!-- Add custom template here --> </ControlTemplate> </Setter.Value> </Setter> </Style> ``` 5. 在 CustomCalendar 类中添加任何其他所需的自定义功能。例如,您可以添加新的属性或事件,或者更改控件的行为。 ``` public class CustomCalendar : Calendar { public static readonly DependencyProperty MyCustomProperty = DependencyProperty.Register("MyCustomProperty", typeof(string), typeof(CustomCalendar)); public string MyCustomProperty { get { return (string)GetValue(MyCustomProperty); } set { SetValue(MyCustomProperty, value); } } // Add custom functionality here } ``` 6. 在 XAML 中使用自定义控件。要使用自定义控件,您可以在 XAML 中使用自定义控件的命名空间,并将控件添加到您的 UI 中。 ``` <Window x:Class="MyApp.MainWindow" xmlns:local="clr-namespace:MyApp.CustomControls" Title="MyApp"> <Grid> <local:CustomCalendar /> </Grid> </Window> ``` 这只是一个简单的示例,您可以根据需要添加更多的自定义功能和样式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值