gpt4 book ai didi

.net - System.ComponentModel.DesignerCategory ("Code") 仍然打开设计器

转载 作者:行者123 更新时间:2023-12-04 04:58:54 28 4
gpt4 key购买 nike

我正在尝试使用 System.ComponentModel.DesignerCategory 防止扩展标签页组件在设计器中自动打开的属性。关于其他 StackOverflow 问题的建议 1 , 2 , 3 ,好像不行。

这是组件上的代码

<System.ComponentModel.DesignerCategory("Code")>
Public Class ExtendedTabPage : Inherits Windows.Forms.TabPage

这是我的 .vbproj 文件中的代码

<Compile Include="ExtendedTabPage.vb">
<SubType>Component</SubType>
</Compile>

我试过用 "" 初始化 DesignerCategory 属性还有 "Code" ,重建并重新打开解决方案,但我仍然通过双击组件获得下面的屏幕。我是否必须删除项目子类型?这会影响代码的编译方式吗?

Component Designer

最佳答案

那个窗口是一个皮塔饼,但你没有办法阻止它出现。

请注意原始 TabPage 控件如何不显示在工具箱中,它仅由 TabControl 的自定义设计器添加。这是通过为其提供 [ToolboxItem(false)] 属性来完成的。而你的克星,[Designer] 属性为 TabControl 和 TabPage 类选择自定义设计器。您必须创建自己的 ExtendedTabControl 并为其创 build 计器。这并不好玩,TabControlDesigner 类是一个相当复杂的设计器。它也是内部的,因此您无法从中派生。使用像 Reflector 或 ILSpy 这样的反编译器是查看这些设计器中代码的一种方式。我不推荐这个,除非你有大量挑剔的付费程序员用户群。

编写代码而不是试图在设计时完成这项工作是可行的。但请注意,您必须在运行时使用 TryCast() 才能将从 TabPages 属性获得的 TabPage 引用转换为您的派生类。

关于.net - System.ComponentModel.DesignerCategory ("Code") 仍然打开设计器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16399531/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com