首页 » 软件开发 » WinCC中的.Net控件开发技巧(控件初始化开发属性传递)

WinCC中的.Net控件开发技巧(控件初始化开发属性传递)

南宫静远 2024-07-24 01:58:13 0

扫一扫用手机浏览

文章目录 [+]

因为WinCC平台的特殊性,为WinCC或者其它组态软件开发.Net控件有一些地方需要特别注意。
如果我们不能对平台特性有所了解,在控件开发过程中难免会走弯路。
我们团队长期致力于WinCC平台上的.Net控件开发,在多年的控件开发过程中,碰到了不少问题。
今天和大家分享一个比较典型的问题。

我们的.Net控件在加载时有时需要根据属性值进行初始化,比如控件的背景色,多语言或者其它一些功能等。
如果这些属性在WinCC中是通过静态值传递那么没有任何问题。
如果是通过WinCC的变量动态传递那么就会发现控件无法进行初始化。
因为控件在加载时获取不到变量值而导致的初始化失败。
这是为何呢?

图1 控件属性传递静态或者动态值

WinCC中的.Net控件开发技巧(控件初始化开发属性传递) 软件开发
(图片来自网络侵删)

因为在.Net中,我们的控件属性一般采用简化的书写方式。

public int MyProperty { get; set; }public int MyProperty1 { get; set; }public int MyProperty2 { get; set; }private void LineView_Load(object sender, EventArgs e) { if (MyProperty == 0) { // } }

上面的代码中,初始化代码放在了控件的Load事件中。
这种写法对于静态值传递是没有问题的。
但是如果传递的是动态值那么就会初始化失败。
这是因为在.Net控件加载时,变量的当前值还没有被刷新。
可能当控件的Load事件执行完成后变量值才更新。
所以导致控件的初始化失败。
对于这种问题,我们需要采用完整的自定义属性语法。

private int _MyProperty = 0;public int MyProperty { get { return _MyProperty; } set { _MyProperty = value; InitialControl(); } }public int MyProperty1 { get; set; }public int MyProperty2 { get; set; }private void InitialControl() { // // }

在上面的代码中,当属性值更新时调用单独的方法进行初始化,这样就可以避免.Net控件在WinCC画面中的初始化失败问题了。

相关文章

语言中的借用,文化交融的桥梁

自古以来,人类社会的交流与发展离不开语言的传播。在漫长的历史长河中,各民族、各地区之间的文化相互碰撞、交融,产生了许多独特的语言现...

软件开发 2025-01-01 阅读1 评论0

机顶盒协议,守护数字生活的新卫士

随着科技的飞速发展,数字家庭逐渐走进千家万户。在这个时代,机顶盒成为了连接我们与丰富多彩的数字世界的重要桥梁。而机顶盒协议,作为保...

软件开发 2025-01-01 阅读1 评论0

语言基础在现代社会的重要性及方法步骤

语言是人类沟通的桥梁,是社会发展的基础。语言基础作为语言学习的基石,对于个人、社会乃至国家的发展具有重要意义。本文将从语言基础在现...

软件开发 2025-01-01 阅读2 评论0

粤语电影,传承文化,点亮时代之光

粤语电影,作为中国电影产业的一朵奇葩,以其独特的地域特色、丰富的文化内涵和鲜明的艺术风格,赢得了广大观众的喜爱。本文将从粤语电影的...

软件开发 2025-01-01 阅读1 评论0

苹果游戏语言,塑造未来娱乐体验的基石

随着科技的飞速发展,游戏产业逐渐成为全球娱乐市场的重要支柱。在我国,游戏产业更是蓬勃发展,吸引了无数玩家和投资者的目光。而在这其中...

软件开发 2025-01-01 阅读1 评论0