我的编程空间,编程开发者的网络收藏夹
学习永远不晚

C# 中怎么设置WinForm控件

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

C# 中怎么设置WinForm控件

C# 中怎么设置WinForm控件,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

如果你为属性设定了默认值,那么当开发者修改了属性的值,这个值在Property Explorer中将会以粗体显示。VS为属性提供一个上下文菜单,允许程序员使用C# WinForm控件开发把值重置为默认值。

当Visual Studio进行控件的串行化时,他会判断那些值不是默认值,只有不是设置默认值的属性才会被串行化,所以为属性提供设置默认值时可以大大减少串行化的属性数目,提高效率。

那么Visual Studio进怎么知道我们的属性值不是默认值了呢?我们需要一种机制来通知Visual Studio进默认值。实现这种机制有两种方法:

对于简单类型的属性,比如Int32,Boolean等等这些Primitive类型,你可以在属性的声明前设置一个DefaultValueAttribute,在Attribute的构造函数里传入设置默认值。

对于复杂的类型,比如Font,Color,你不能够直接将这些类型的值传递给Attibute的构造函数。相反你应该提供Reset和ShouldSerialize方法,比如ResetBackgroundColor(),ShouldSerializeBackgroundColor()。

VS能够根据方法的名称来识别这种方法,比如Reset方法把重置为设置默认值,ShouldSerialize方法检查属性是否是设置默认值。过去我们把它称之为魔术命名法,应该说是一种不好的编程习惯,可是现在微软依然使用这种机制。我还是以前面几篇文章使用的例子代码。

using System;  using System.Collections.Generic;  using System.Text;  using System.Windows.Forms;  using System.ComponentModel;  using System.Drawing;  namespace CustomControlSample  {      public class FirstControl : Control      {  private String _displayText=”Hello World!”;  private Color _textColor=Color.Red;    public FirstControl()          {          }          // ContentAlignment is an enumeration defined in the System.Drawing          // namespace that specifies the alignment of content on a drawing           // surface.          private ContentAlignment alignmentValue = ContentAlignment.MiddleLeft;          [          Category("Alignment"),          Description("Specifies the alignment of text.")          ]          public ContentAlignment TextAlignment          {              get             {                  return alignmentValue;              }              set             {                  alignmentValue = value;                  // The Invalidate method invokes the OnPaint method described                   // in step 3.                  Invalidate();              }          }   [Browsable(true)]   [DefaultValue(“Hello World”)]   public String DisplayText  {  get {  return _displayText;  }  set {       _displayText =value;      Invalidate();  }  }  [Browsable(true)]  public Color TextColor  {  get {      return _textColor;  }  set {      _textColor=value;  Invalidate();  }  }  public void ResetTextColor()  {      TextColor=Color.Red;  }  public bool ShouldSerializeTextColor()  {  return TextColor!=Color.Red;  }  protected override void OnPaint(PaintEventArgs e)          {              base.OnPaint(e);              StringFormat style = new StringFormat();              style.Alignment = StringAlignment.Near;              switch (alignmentValue)              {                  case ContentAlignment.MiddleLeft:                      style.Alignment = StringAlignment.Near;                      break;                  case ContentAlignment.MiddleRight:                      style.Alignment = StringAlignment.Far;                      break;                  case ContentAlignment.MiddleCenter:                      style.Alignment = StringAlignment.Center;                      break;              }              // Call the DrawString method of the System.Drawing class to write                 // text. Text and ClientRectangle are properties inherited from              // Control.              e.Graphics.DrawString(                  DisplayText,                  Font,                  new SolidBrush(TextColor),                  ClientRectangle, style);          }      }  }

在上面C# WinForm控件开发的代码中,我增加了两个属性,一个是DisplayText,这是一个简单属性,我们只需要在它的声明前添加一个DefaultValue Attribute就可以了。

另外一个是TextColor属性,这个复杂类型的属性,所以我们提供了ResetTextColor和ShouldSerializeTextColor来实现默认值。

C# WinForm控件开发设置默认值的实现就讲完了,但是有一点不要忽视了,你已经设置默认值,就应该相应的初始化这些属性,比如我们例子中的代码:

private String _displayText=”Hello World!”;  private Color _textColor=Color.Red;

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注编程网行业资讯频道,感谢您对编程网的支持。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

C# 中怎么设置WinForm控件

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

C# 中怎么设置WinForm控件

C# 中怎么设置WinForm控件,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。如果你为属性设定了默认值,那么当开发者修改了属性的值,这个值在Property
2023-06-17

C#中winform chart控件怎么使用

在C#中使用WinForms Chart控件,可以按照以下步骤进行操作:在Visual Studio中创建一个WinForms应用程序项目。在设计视图中,从工具箱中拖拽一个Chart控件到窗体上。在窗体的代码文件中,添加对System.
C#中winform chart控件怎么使用
2024-02-29

winform怎么设置控件的透明度

要设置WinForm控件的透明度,可以使用控件的`Opacity`属性。该属性接受一个介于0和1之间的值,其中0表示完全透明,1表示完全不透明。以下是一个设置控件透明度的示例:```csharp// 设置控件的透明度为50%myContro
2023-08-19

WinForm中怎么设置用户控件的按钮事件

这篇文章给大家介绍WinForm中怎么设置用户控件的按钮事件,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。项目中需要对一个DataGridView控件进行类似于Excel查找的功能,之前是使用的DevExpress里面
2023-06-17

Attribute在C# WinForm控件开发中怎么用

这篇文章主要为大家展示了“Attribute在C# WinForm控件开发中怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Attribute在C# WinForm控件开发中怎么用”这篇文章
2023-06-17

C#的WinForm怎么增加treeView1控件

这篇文章主要讲解了“C#的WinForm怎么增加treeView1控件”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#的WinForm怎么增加treeView1控件”吧!使用TreeNod
2023-06-17

c中datagridview控件属性怎么设置

在C#中,可以通过以下步骤设置DataGridView控件的属性:1. 打开窗体设计器,将DataGridView控件拖放到窗体上。2. 选中DataGridView控件,在属性窗口中可以找到控件的属性列表。3. 根据需要设置DataGri
2023-08-08

C#中Chart控件属性怎么设置

C#中Chart控件的属性可以通过以下几种方式进行设置:1. 在设计视图中直接通过属性窗口设置。在Visual Studio中拖拽Chart控件到窗体上后,可以通过属性窗口直接设置Chart的各个属性,如ChartType(图表类型)、Se
2023-09-21

C# WinForm怎么设置DataGridView选中指定行

要设置DataGridView选中指定行,可以使用DataGridView的SelectedRows属性来实现。以下是一个示例代码:// 假设dataGridView是一个DataGridView控件// 选中第一行dataGridVi
2023-10-21

怎么处理WinForm中的控件事件

在WinForm中处理控件事件通常需要以下步骤:打开窗体设计器,选择要处理事件的控件,例如按钮、文本框等。双击控件,会自动创建一个事件处理方法,并打开代码视图。在事件处理方法中编写处理事件的代码,例如处理按钮点击事件时可以编写相应的逻辑
怎么处理WinForm中的控件事件
2024-04-08

WinForm中怎么添加按钮控件

在WinForm中添加按钮控件的步骤如下:打开Visual Studio,在工具箱中找到按钮控件(Button)。将按钮控件拖拽到窗体设计器中的位置。可以通过属性窗口设置按钮的属性,例如文本内容、大小、颜色等。可以添加按钮的点击事件处理程序
WinForm中怎么添加按钮控件
2024-04-08

c#滚动条控件怎么设置

在c#中设置滚动条控件包括以下步骤:创建scrollbar控件。设置minimum、maximum、value和orientation属性以配置控件。响应scroll事件以执行特定操作。在 C# 中设置滚动条控件在 C# 中设置滚动条控件
c#滚动条控件怎么设置
2024-05-12

winform怎么调用wpf控件

要在WinForm中调用WPF控件,可以按照以下步骤进行操作:1. 在WinForm项目中添加对WPF的引用。右击项目 -> 添加 -> 引用 -> 浏览 -> 选择WPF的dll文件(通常在Windows的安装目录下的.NET文件夹中可以
2023-10-20

wpf怎么使用winform控件

WPF(Windows Presentation Foundation)是一种用于构建 Windows 桌面应用程序的技术,而 WinForms 是另一种构建 Windows 桌面应用程序的技术。WPF 和 WinForms 使用不同的控件
2023-09-26

C# winform跨线程操作控件怎么实现

今天小编给大家分享一下C# winform跨线程操作控件怎么实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。前提:当我们使
2023-07-02

VB.NET中怎么设置控件

这篇文章给大家介绍VB.NET中怎么设置控件,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。VB.NET经过长时间的发展,很多用户都很了解VB.NET设置控件了,这里我发表一下个人理解,和大家讨论讨论。个人都不希望在别人
2023-06-17

WinForm中怎么使用状态栏控件

要在WinForm中使用状态栏控件,您可以按照以下步骤操作:在Visual Studio中打开您的WinForm项目。在工具箱中找到状态栏控件(StatusBar),将其拖放到您的窗体上。在状态栏控件中添加所需的状态栏面板(Status
WinForm中怎么使用状态栏控件
2024-03-12

WinForm中怎么使用定时器控件

在WinForm中使用定时器控件非常简单。下面是使用定时器控件的步骤:在WinForm的工具箱中找到定时器控件(Timer),将其拖放到窗体上。设置定时器控件的属性,比如Interval(定时器触发事件的时间间隔,单位为毫秒)。双击定时
WinForm中怎么使用定时器控件
2024-03-12

C#开发WinForm中怎么清空DataGridView控件绑定的数据

本文小编为大家详细介绍“C#开发WinForm中怎么清空DataGridView控件绑定的数据”,内容详细,步骤清晰,细节处理妥当,希望这篇“C#开发WinForm中怎么清空DataGridView控件绑定的数据”文章能帮助大家解决疑惑,下
2023-06-29

winform列表控件怎么使用

WinForm中的列表控件可以使用ListBox、ListView和DataGridView三种控件来实现。1. ListBox控件:ListBox控件是一种简单的列表控件,用于显示一列项。可以通过以下步骤来使用ListBox控件:- 在窗
2023-09-05

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录