问题标签 [windows-forms-designer]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 覆盖 OnPaint
如果我重写 OnPaint 并在控件上绘制一个正方形,当我在设计器中预览它时,如何让 e.graphics.draw... 显示出来?
.net - 非托管代码中的 Windows 窗体?
我发现自己很恼火 Visual Studio 带有一个精美的 GUI 界面设计器,而且它只能被 .NET 应用程序访问,甚至不能被托管 C++ 访问。
有什么简单的方法可以至少用非托管/外部代码打开一个 C DLL 类型的接口?
c# - 事件未显示在属性网格中
我正在创建一个特殊的搜索文本框。除其他外,它有以下两个事件:
事情是只有底部的两个显示在设计视图属性事件浏览器中(不管它的名字是什么......)。我想知道为什么。是因为我没有使用标准EventArgs
吗?但这不应该是这种情况,因为我的意思是,还有其他事件没有使用它......比如按键相关事件等......
该类GenericEventArgs<T>
如下所示:
我在这里做错了什么?
c# - Visual Studio Designer 总是试图改变我的控制
我有一个有点复杂的 UserControl,而 Visual Studio 2008 在使用它时给我带来了相当无害的烦恼。每次我用设计器打开控件时,它都会决定立即更改设计器设置的一些无害值——即 Size 属性的初始化。如果我保存这些更改,关闭并重新打开,它几乎总是会决定我的控件的另一个组件需要更改其初始大小,无穷无尽。幸运的是,这些更改是无害的,因为我在任何地方都使用自动调整大小,但这很烦人。我还不清楚从哪里开始找出问题所在,我现在唯一的想法是每次打开控件时设计器都会将自动调整大小的结果分配回初始大小字段。关于原因/修复的任何想法?
编辑:另外,我正在使用应用程序设置来保存跨应用程序运行的某些可调整大小的子组件的大小,但我真的希望设计器足够聪明,能够理解它应该只使用默认值。
.net - 为非常量类型的属性设置 DefaultValue?
我有一个 Windows.Forms 组件,它有一个返回 Size 结构的“mySize”属性。我的意图是让这个属性根据组件的大小自动计算返回的 mySize,除非 mySize 已明确设置,在这种情况下,返回 mySize 的设置值。不幸的是,现在我将组件嵌入到窗体中,Windows 窗体设计器决定开始显式生成并设置 mySize 属性的值,这让我很头疼。
所以我需要设置一个 DefaultValue,这样设计师就会走开,让我一个人呆着。
我已经阅读了处理 System.ComponentModel.DefaultValue 的答案,所以我知道我必须在构造函数中手动设置属性的值,但我发现的答案和文档只处理设置 False 的 DefaultValue,一个持续的。
Size 结构不是常量,因此 VB 编译器吓坏了,告诉我我不能将 Size 设置为 Size 类型的属性的 DefaultValue,因为 Sizes 不是常量。
这让我的大脑很受伤。
我可能可以通过使用 getMySize 和 setMySize 方法而不是使用属性来解决这个问题,但我想知道实际上是否有任何方法可以为 Size 设置默认属性。
注意:我没有将 mySize 用作覆盖 Size 属性的某种疯狂尝试(其 DefaultValue 为 150x150,因此 SOMETHING 似乎能够为 Sizes 设置 DefaultValues);mySize 只是 Class 所需的一些 Size 值。
c# - 通用表单的具体实现在 Designer 中不起作用
我有一个基类,定义如下(我也在使用 DevExpress 组件):
与我从其他地方读到的相反,我仍然能够设计这个类。我不必为此创建一个具体的类。但是,当我创建一个派生自它的具体类时(如下所示),该类在设计器中不起作用。
我收到这条消息:
无法为此文件显示设计器,因为无法设计其中的任何类。设计人员检查了文件中的以下类: ConcreteFormClass --- 无法加载基类“BaseFormClass”。确保已引用程序集并且已构建所有项目。
有没有人见过这个?任何已知的解决方法?
winforms - Winforms Designer 如何实例化我的表单?
我正在开发自己的 WinForms 设计器。它必须能够加载现有的自定义表单类型。我遇到的问题之一是没有默认 ctor 的表单:我的代码当前实例化了表单,然后才能将其加载到设计器中,这需要默认 ctor。
OTOH,VS2008 能够加载这样的表格。我相信它实际上并没有实例化我的表单(如本问题所述):即使是默认的ctors也不会被执行。它并没有真正执行 InitializeComponent()。我刚刚在该函数中添加了一个消息框,但它没有显示。
看起来它动态地模仿了自定义表单类型,并且只执行了 InitializeComponent 中它认为相关的部分代码。
有谁知道我在哪里可以找到有关 VS 设计器如何工作的更多信息。
TIA。
注意:我发现这个相关问题没有令人满意的答案
编辑:附加信息:史蒂夫将我指向 CodeDom,这非常有趣。不过,我的问题是我需要加载到我的设计器中的类型已经编译,而不是作为源代码提供。我找不到任何方法将 CodeDom 反序列化应用于已编译的代码。
c# - Visual Studio 2008 WPF 设计器不会加载我的表单
我试图在 Visual Studio 2008 中查看由其他人(前雇员)开发的表单,但是当我尝试查看 MainForm.xaml(它无法在设计器视图中加载)时不断遇到以下错误:
错误无法创建类型为“NumericTextBox”的实例。D:\MySolution\GUI\MainForm.xaml
我的解决方案是这样组织的(为了简洁而缩短 - 这是发生错误的最后一行):
我的 MainForm.xaml 看起来像这样:
什么可能导致该错误?一切都可以编译,但是当我运行它时应用程序崩溃了。我希望这两个问题可能是一个相关的问题。
winforms - 调整大小时容器中控件的 WinForm 设计器和右对齐线
使用 Visual Studio 2008 WinForm 设计器,我有一个容器(窗体、面板、组框等)和其中的一些控件。
容器设置为不会以任何方式自动调整大小或停靠。在容器中放置控件时,我可以使用对齐线来帮助定位控件。
但是,当我将容器调整到包含控件的边缘时,对齐线不会出现......
有没有一种简单的方法可以让设计人员在调整容器大小时向我显示包含的控件的对齐线?
c# - 为从本机 .NET 控件派生的控件自定义 ControlDesigners 的行为
我的问题与这个问题有关: 自定义 Winforms 控件中的基线对齐线
但是,就我而言,我创建了一个derives
来自 TextBox 而不是containing
TextBox 的新控件。我想要一个自定义的 ControlDesigner,但我想修改 TextBox 设计器的行为,而不是自己编写一个完整的设计器。特别是,我希望能够在提供一些自定义动词的同时返回 TextBox 的 SnapLines。有没有好的方法来做到这一点?
编辑:澄清一下,这适用于 .NET 2.0 中的 Windows 窗体。