Tag: windows forms designer

表单设计器打破通用抽象UserControl

我有一个通用的抽象UserControl类, SensorControl ,我希望我的所有传感器控制面板都可以inheritance。 问题 尝试设计EthernetSensorControl (我inheritance的UserControl表单之一,在Visual Studio中,表单设计器中显示以下错误: 无法为此文件显示设计器,因为其中的任何类都无法设计。 设计人员检查了文件中的以下类:DeviceSensorControl —无法加载基类“Engine.Sensors.SensorControl”。 确保已引用程序集并且已构建所有项目。 SensorControl类: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows.Forms; namespace Engine.Sensors { public abstract class SensorControl : UserControl where SensorType : class { protected SensorType _sensor; public SensorControl(SensorType sensor) { _sensor = sensor; } } } 示例inheritance类, EthernetSensorControl : namespace Engine.Sensors { […]

WinForms设计器属性的不同派生类型

假设我有一个特定的类型,我想让Windows窗体设计师使用… public class Style { public CustomBrush Brush { get; set; } } 而CustomBrush就像这样实现…… public abstract CustomBrush { … } public SolidCustomBrush : CustomBrush { … } public GradientCustomBrush : CustomBrush { … } 在设计时有没有办法可以从CustomBrush派生的任何类型中选择,实例化所选类型的实例,并通过设计器进行修改? 到目前为止,我能够做到这一点的唯一方法是使用enum enum BrushType { Solid, Gradient } 当enum改变时, Brush属性的底层类型也会改变,但我不喜欢这种方法……它很脏!

如何暂时禁用Visual Studio自动生成的事件?

所有, 我已经完成了GUI设计阶段……现在我已经开始为我的应用程序中的所有控件添加有意义的名称。 每当我点击控件改变它的名字时,Visual Studio就会让我疯狂自动生成事件(好吧所以它只会在我搞砸了并且双击……但仍然很烦人时)。 有没有办法暂时禁用此function? 我仍然想要它,因为当我编码时它是一个很好的捷径。 谢谢!

Visual Studio在哪里查找程序集?

我有一个框架,其中包含许多基类,可以派生它们来开发许多应用程序。 在这些类中有一个System.Windows.Forms.Panel的子类,我为它编写了自己的设计器。 Visual Studio 2005一切正常,但是当我尝试移动到VS2010时出现了问题。 这是我正在做的简化版本: 我有一个名为CoreClasse的项目,它包含一个接口和两个类: public interface IConf { string foo { get; set; } void InitFoo(); } public class SimpleClass { public string foo; } public class ConfLoader { public static IConf LoadConf() { AssemblyName anAssemblyName = new AssemblyName(“ConfClasses”); Assembly anAssembly = Assembly.Load(anAssemblyName); IConf result = (IConf)anAssembly.CreateInstance(“ConfClasses.ConfClass”); result.InitFoo(); return result; } } […]

我的Windows窗体在构建时不断缩小/resize

我正在开发一个Windows窗体项目。 它包含一个标签控制器,每个页面都有多个页面和多个控件。 看来,相对于最近,在一些forms更改之后,每次构建和运行解决方案时,表单都会resize/缩小。 因此,如果我将表单高度的大小设置为768,一旦我单击“开始”构建并运行它,我实际上可以看到它在此过程中调整自身大小,然后表单加载比高度值短21个像素它正在建设中。 如果我继续构建和运行我的项目,表单每次将减少21个像素,使每个构建它变得越来越小。 我们认为在将“DataGridView”控制器添加到其中一个选项卡时可能已经引入了,但我们还没有certificate是否是这种情况。 有没有理由为什么会这样,有什么可以做到这一点? 为什么它会在构建运行时自行resize?

如何避免错误“inheritance基类时未找到类型’MyType’上的构造函数”

我有一个Visual Studio 2010 Windows窗体应用程序,其中包含其他类将inheritance的Form基类。 基类的构造函数接受子类将传递给基类的参数。 例: public partial class BaseForm : Form { public BaseForm(int number) { InitializeComponent(); } } public partial class ChildForm : BaseForm { public ChildForm(int number) : base(number) { InitializeComponent(); } } 我遇到的问题是,当我尝试在VisualStudio的设计视图模式下打开ChildForm时,我收到以下错误: 找不到类型“MyProject.BaseForm”的构造函数。 注意:无论错误如何,项目编译并运行正常。 如果我用不包含任何参数的构造函数重载构造函数,我可以避免错误。 示例:(这消除了错误) public partial class BaseForm : Form { public BaseForm(int number) { InitializeComponent(); } public […]

以windows格式播放youtubevideo

我是dot net的新手,有一项任务需要完成。 我不知道如何开始。 我的问题:我的Windows窗体上应该有一个youtubevideo。 当用户点击播放按钮时,表格应该刷新并打印“1人观看”video播放。 类似的用户可以重复这个过程:他可以再次点击播放按钮,它会刷新。 现在这次你将再次看到video以及“2人观看”文本。 基本上,它正在维持一个击中播放按钮的计数器。 我无法在Google上找到任何相关信息。 我不知道如何将该video嵌入到表单中。

在inheritance的表单上打开设计器时出错

我在Windows CE应用程序中打开inheritance的表单时遇到问题。 这是一个我从前雇员手中接管的项目,但是在某些移动设备上运行的是编译版本,所以我认为它应该能够打开。 我有正确的VS版本(2008),并尝试清理解决方案并重建解决方案。 部署解决方案时,它就像一个魅力。 一旦我尝试进入inheritance表单的设计器,我会收到以下错误: To prevent possible data loss before loading the designer, the following errors must be resolved: Object reference not set to an instance of an object. 堆栈跟踪: at MyApp.frmBase.UpdateOnline() in C:\Users\Corne\Documents\Visual Studio 2008\Projects\Test\MyApp\MyApp\frmBase.cs:line 35 at MyApp.frmBase.frmBase_Load(Object sender, EventArgs e) in C:\Users\Corne\Documents\Visual Studio 2008\Projects\Test\MyApp\MyApp\frmBase.cs:line 30 at System.Windows.Forms.Form.OnLoad(EventArgs e) at System.Windows.Forms.Form.OnCreateControl() at […]

自动重新生成设计器文件

最近我对我们使用的很多控件进行了一些改进,例如给出属性默认值并使按钮变为私有而不是受保护。 通过进行这种调整,您需要重新生成具有此控件的表单的设计器文件或从控件inheritance的控件。 在过去,这不是一个真正的问题,因为我们只有20-30个表格。 目前我们有超过300种表格,这意味着在VS2010中开设相同数量的设计师。 所以我的问题是:您知道一种自动化此过程的方法,以便重新生成所有表单吗? 我一直在考虑一个查找设计器文件并打开文件的宏(打开最多25-50个文件以确保VS不会崩溃),但我无法使其工作。 我希望有人有个建议!

Visual Studio Designer总是试图改变我的控制

我有一个有点复杂的UserControl,Visual Studio 2008在使用它时给了我一个相当无害的烦恼。 每次我使用Designer打开控件时,它都会决定立即更改设计器设置的一些无害值 – 即Size属性的初始化。 如果我保存这些更改,关闭并重新打开,它几乎总是最终决定我的控件的另一个组件需要更改初始大小,无限制。 幸运的是,这些变化是无害的,因为我在任何地方都使用自动resize,但这对于使用起来非常烦人。 我不知道从哪里开始弄清楚出了什么问题,我现在唯一想到的是Designer每次打开控件时都会将自动resize的结果分配回初始大小字段。 关于原因/修复的任何想法? 编辑:此外,我正在使用应用程序设置来保存应用程序运行中某些可resize的子组件的大小,但我真的希望Designer足够聪明,以了解它应该只使用默认值。