首页 / 知识
关于winforms:“视觉继承”的作用是什么?
2023-04-14 13:09:00

What's the state of play with “Visual Inheritance”我们有一个应用程序,该应用程序必须灵活地向用户显示其主要表单-根据用户的不同,表单应略有不同,可能在此处或此处有一个额外的按钮,或其他一些细微差别。 为了停止编写代码以显式删除或添加控件等,我转向视觉继承来解决问题-我认为这是一种整洁,干净且符合逻辑的OO风格-事实证明,有一半的时间继承形式很难 在没有充分理由的情况下在VS中渲染主题集-我感觉开发人员以及Microsoft在某种程度上都回避了Visual Inheritance的实践-您可以确认这一点,我在这里遗漏了什么吗? 问候。
我认为他们在2005年或多或少地解决了桌面设计师的问题。
我似乎认为只要您完成了以上所有操作,它就可以正常工作。 我正在研究(肯定即将淘汰)的MCAD,并且WinForms元素的一部分是"视觉继承"。 我个人对此没有太大问题,但是,有一些注意事项需要考虑。 对我而言,主要问题始终是初始化。.您需要记住,设计人员无法/不以与运行时相同的方式实例化表单(类似地,它无法通过Web开发人员来实例化,这就是为什么需要注意使用自定义控件呈现)。 同样,一旦更改了表单,就需要对项目进行完整的重新构建,以便将对表单的更改传播到继承自该表单的子表单。 我个人没有看到任何证据表明它已被"回避"。 AFAIK,它仍然是在可能的情况下重复使用代码的良好实践。视觉继承提供了这一点。 我可以建议使用示例代码针对您遇到的实际问题创建一个新问题吗?然后,我们可以查看它是否可以运行并解释原因:) 我已经在VS2005中看到了一些问题。它们主要是由于设计器中表单对象的构造问题。尝试从表单构造函数等访问数据库的代码存在问题。 您可以通过启动Visual Studio的第二个实例并在调试器中加载第一个实例来调试此类问题。如果在代码中设置了断点,则可以调试在第一个实例中在设计器中发生的情况。 我记得的另一个问题是表单类中的泛型
这行不通 我想我已经找到一种避免该问题的方法。 不要将Form_Load事件挂在您的父窗体中,这会破坏设计器。 另外,不要从父窗体的Visual Studio中删除Default空构造函数。如果要使用依赖注入,请创建另一个构造函数。 像这样:
然后,您仍然可以从继承的Form中执行此操作:
到目前为止,这对我有用,而且我也遇到了一些奇怪的设计师问题。 干杯,丹尼尔 我经常在Visual Studio中偶然发现这样的问题。在许多情况下,MSVS表单设计器无法正确呈现表单。在使用WinForms的日子里,我不得不做各种怪异的技巧来启用一些复杂的方案。但是,我认为使用可视继承非常有益,并且无论MSVS设计器的错误如何,都不应丢弃。 阅读此:http://cs.rthand.com/blogs/blog_with_righthand/archive/2005/11/10/186.aspx AFAIK仍然存在可视继承问题,并且对象依赖于设计元素的集合,通常是网格控件等。我相信MS仍然消除了更改f.ex的可能性。继承了表单/用户控件等的GridView。但是其他控件(如TextBox,Form,UserControl,Panel等)应该可以正常工作。 到目前为止,我自己使用第三方网格控件对VI都没有问题,但是您必须特别小心,必须避免从集合中删除项目。 |
最新内容
相关内容
linux看用户信息命令?
linux看用户信息命令?,系统,密码,信息,状态,软件,情况,命令,用户,网络,时间,linux如何查看用户权限,linux查看当前用户权限的命令1、linux怎么linux下删除用户命令?
linux下删除用户命令?,系统,代码,邮箱,用户组,命令,用户,名称,管理,电脑,账户,删除用户的命令是什么1、userdel-r命令。userdel-r命令可以删除用户id的linux命令?
用户id的linux命令?,系统,密码,信息,联系方式,地址,位置,用户,命令,用户名,终端,Linux命令详解之id首先,打开linux客户端。接着,点击上方的连接llinuxid命令作用?
linuxid命令作用?,系统,工作,命令,信息,标准,代码,数据,名称,概念,用户,linux中“UID、PID、PPID”分别是什么意思?UID是用户ID,PID是进程ID,PPIlinux的fd命令作用?
linux的fd命令作用?,管理,工作,信息,系统,软件,服务,有限,标准,电脑,设备,【fd】Linux文件描述符1、,已经分配的文件描述符数;2,已经分配但未使用linux删除用户组命令?
linux删除用户组命令?,管理,系统,密码,电脑,名称,用户,用户组,名字,信息,工具,Linux命令之用户组管理1、在Linux中,用户组是一种将一组用户聚合linuxcd命令作用?
linuxcd命令作用?,工作,系统,命令,密码,信息,目录,用户,终端,作用,缩写,linux系统中cd指令怎么用cd /:进入根目录;cd .:当前目录。不加参数时,默认linux下用户权限命令?
linux下用户权限命令?,管理,系统,密码,地址,权限,时间,基础,信息,基本知识,工作,Linux用户以及权限相关常用命令总结sudo和su类似,有一些附加的linux登陆用户命令?
linux登陆用户命令?,系统,工具,信息,地址,软件,工作,命令,数字,服务,名称,Linux常用基本命令大全介绍linux常用命令:pwd命令该命令的英文解释为linux用户名改名命令?
linux用户名改名命令?,系统,密码,命令,代码,名称,用户名,用户,终端,主机名,文件,linux下命令怎么修改用户名1、Linux系统中用户切换的命令为sulinux基础命令和作用?
linux基础命令和作用?,基础,系统,单位,电脑,权威,管理,网络,设备,命令,音乐,别不信!掌握好这20条Linux基础命令,让你的操作效率直接双倍1、系linux用户分组命令?
linux用户分组命令?,系统,命令,电脑,信息,时间,标准,资料,用户,文件,用户组,Linux命令行操作之sedsed命令行格式为:sed [-nefri] ‘command’