搜索
bottom↓
回复: 10

求助 .NET环境下自定义控件是否可以操作项目中的全局变量?

[复制链接]

出0入0汤圆

发表于 2017-2-16 10:06:13 | 显示全部楼层 |阅读模式
编程环境:VS2010    VB.NET
需求:习惯了使用组态软件那种设置一下参数即可实现数据显示/修改功能。不知在VS下是否可以实现!
         具体需求:通过自定义用户控件的自定义属性,可以实现对属性中设置的全局变量名进行读写操作,
         而不需要在项目中对自定义控件编写脚本才能实现!
  例如:自定义控件有个参数名  set:  在项目程序中,对set参数设置了全局变量:A-setlevel(此为全局变量名,放在项目Module中),
           如何通过编写自定义控件获取到 A-setlevel 并对这个全局变量进行读写操作?

不知是否可行?

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2017-2-16 10:37:20 | 显示全部楼层
单例模式?

出0入0汤圆

 楼主| 发表于 2017-2-16 10:58:37 | 显示全部楼层
本帖最后由 longlong105 于 2017-2-16 11:05 编辑


类似这样吗?  Private Shared  搜索了一下 说这个使用过多会内存混乱?

出0入0汤圆

发表于 2017-2-16 13:44:41 | 显示全部楼层
单例模式,也叫单子模式,是一种常用的软件设计模式。在应用这个模式时,单例对象的类必须保证只有一个实例存在。许多时候整个系统只需要拥有一个的全局对象,这样有利于我们协调系统整体的行为。比如在某个服务器程序中,该服务器的配置信息存放在一个文件中,这些配置数据由一个单例对象统一读取,然后服务进程中的其他对象再通过这个单例对象获取这些配置信息。这种方式简化了在复杂环境下的配置管理。
实现单例模式的思路是:一个类能返回对象一个引用(永远是同一个)和一个获得该实例的方法(必须是静态方法,通常使用getInstance这个名称);当我们调用这个方法时,如果类持有的引用不为空就返回这个引用,如果类保持的引用为空就创建该类的实例并将实例的引用赋予该类保持的引用;同时我们还将该类的构造函数定义为私有方法,这样其他处的代码就无法通过调用该类的构造函数来实例化该类的对象,只有通过该类提供的静态方法来得到该类的唯一实例。
单例模式在多线程的应用场合下必须小心使用。如果当唯一实例尚未创建时,有两个线程同时调用创建方法,那么它们同时没有检测到唯一实例的存在,从而同时各自创建了一个实例,这样就有两个实例被构造出来,从而违反了单例模式中实例唯一的原则。 解决这个问题的办法是为指示类是否已经实例化的变量提供一个互斥锁(虽然这样会降低效率)。

摘自:https://zh.wikipedia.org/wiki/%E5%8D%95%E4%BE%8B%E6%A8%A1%E5%BC%8F


如果你的全局参数存在,单例对象当中,在程序任何位置都可以,读取,修改

出0入0汤圆

 楼主| 发表于 2017-2-17 16:14:54 | 显示全部楼层
zyqcome 发表于 2017-2-16 13:44
单例模式,也叫单子模式,是一种常用的软件设计模式。在应用这个模式时,单例对象的类必须保证只有一个实例 ...

谢谢!
买了本VB2010的入门书,从头开始看起了!

出0入0汤圆

发表于 2017-2-17 18:21:19 | 显示全部楼层
楼主是想自己开发控件给别人用?
如果是wpf控件,通常控件的属性可以绑定到一个一个对象的属性(可以单向绑定,也可以双向绑定)
(如果这个对象定义成public static的,那么就相当你所说的全局的了),
要掌握这东西,需要点时间去学习啊,

出0入0汤圆

 楼主| 发表于 2017-2-17 18:49:08 | 显示全部楼层
codefish 发表于 2017-2-17 18:21
楼主是想自己开发控件给别人用?
如果是wpf控件,通常控件的属性可以绑定到一个一个对象的属性(可以单向绑 ...

嗯嗯,是想模仿组态软件编写一个自己使用的软件!正在恶补知识!

出0入0汤圆

发表于 2017-2-18 11:22:36 | 显示全部楼层
用C#的属性可以实现

出0入0汤圆

 楼主| 发表于 2017-2-18 14:05:54 | 显示全部楼层
guzhongqi 发表于 2017-2-18 11:22
用C#的属性可以实现

愿闻其详!
谢谢

出0入0汤圆

 楼主| 发表于 2017-2-19 17:20:35 | 显示全部楼层
guzhongqi 发表于 2017-2-18 11:22
用C#的属性可以实现

有没有C# 入门书籍推荐那?
谢谢!

出0入0汤圆

发表于 2017-2-20 08:01:23 | 显示全部楼层
longlong105 发表于 2017-2-19 17:20
有没有C# 入门书籍推荐那?
谢谢!

随便搜搜一大把,C#不存在全局变量一说,不过可以在属性中使用委托实现你要的功能。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-3-29 01:59

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表