怎么把用户控件添加到winform

怎么把用户控件添加到winform,第1张

比如,如下图所示,在winform项目中有一个winform和一个新建用户控件。直接拖动用户控件往winform中放置的时候,会发现鼠标一直是一个禁止的图标,这时时拖动不上去的。

打开工具箱,拖动用户控件到工具箱里,在到达工具箱的时候鼠标变成加号,但还是无法把用户控件放置到工具箱中。

其实,在winform中添加用户控件前是要先编译项目的。可以点击“生成->生成解决方案” 来编辑项目

生成成功后,可以看到工具箱上出现了用户控件

这时就可以从工具箱拖动用户控件到winform中了

6

直接双击用户控件也可以把用户控件放置在winform中,这时用户控件会默认停靠在左上角

在前几节中 我们演示了怎样进行用户控件开发 大家可能对用户控件中的一些属性的基本设置还存在疑惑 这节我们共同学习下用户控件的基本属性设置

所谓基本属性设置 就是我们常常看到控件在属性设计器中可以对属性进行设置 有些属性在设计中具有默认值 有些在属性设计器中会d出一个编辑器 供用户选择值

这节内容

简单数据类型的属性设置

复杂数据类型的属性设置

简单数据类型的属性设置

简单数据类型 就是 NET中常见的类型 例如字符串 整型 浮动型 这些基本数据类型

我们看下这些基本属性

Browsable 指示该属性是否可以在属性设计器中显示 如果TRUE则显示 FALSE则不显示

Category 表示属性的分类

Description 表示属性的描述信息

DefaultValue 表示属性的默认值

下面我们定义了一个用户控件 并自定义了一个属性SecondText 代码如下

public partial class UCLabel : UserControl { public UCLabel() { InitializeComponent()} private string _sText= Helloworld //初始值 /// <summary>/// Browsable表示该属性是否显示在设计器中 TRUE为显示 /// </summary>/// Description表示对属性的描述信息 /// Category表示该属性在属性设计器中的分类 [Browsable(true)] [Category( 文本 )] [Description( 第二文本 )] [DefaultValue( 新浪微博 )]//默认值 public string SecondText { get { return _sText} set { _sText = value} } }

从上面的图片中 我们可以看到各个属性在属性设计器中对应的项

在这里有一点要说明 我们把SecondText的初始值设为HelloWorld   把它的默认值设为新浪微博  我们说下初始值和默认值的区别

初始值是属性定义时候赋的值 当把用户控件拖到窗体上后 默认情况下显示的初始值

一个属性的默认值是非加粗显示 其他值都是加粗显示的

如果想恢复某个属性的默认值 只需要右键单击该属性 选择重置 就可以恢复属性的默认值

  复杂属性的基本设置

复杂类型主要是指引用类型 例如我们自定义的类 或者系统原有的类 复杂属性的设置主要是默认值的设置

复杂属性的默认值设置不能再使用DefaultValue属性 需要使用Reset方法

如果想判断当前属性是否使用的是默认值 可以使用ShouldSerialize属性名来判断 当然 这两个方法都需要我们自己来实现

如下代码定义了一个颜色复杂属性

//定义属性的初始值为红色 private Color _sColor = Color Red[Category( 颜色 )] [Description( 第二颜色 )] public Color SecondColor { get { return _sColor} set { _sColor = value} } /// <summary>/// 用于判断当前属性是否在使用默认值 /// </summary>/// <returns></returns>public bool ShouldSerializeSecondColor() { return _sColor != Color Blue} /// <summary>/// 用于设置属性的默认值为蓝色 /// </summary>public void ResetSecondColor() { _sColor = Color Blue}

这样我们在属性设计器中就可以通过重置命令 设置默认颜色为蓝色

lishixinzhi/Article/program/net/201311/13456

Lable lable=new Lable()

label//属性设置..

Form1.Controls.Add(label)//添加到窗口容器中,大概这是这么个意思.动态生成控件.


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11246921.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存