我在C#应用程序中有几种形式.我使用Visual Studio 2010 Beta,但是使用.NET 3.5和C#3.
我有一个基本形式,在Shd命名空间中称为FilteredQueryViewForm,我想要一些其他形式来继承它(因为它们基本上会做同样的事情,但有一些补充).
我在FilteredQueryViewForm类中将内容从private更改为protected,因此可以从派生表单中访问它们.在此之后,我创建了一个派生表单,并将基类设置为FilteredQueryViewForm.
派生类的设计者抱怨Shd.FilteredQueryViewForm没有任何构造函数......不管它有一个具有3个参数的事实.我认为参数可能是一个问题,所以我也创建了一个没有参数的(公共的,当然)构造函数,但它仍然不起作用.错误消息是相同的:
"找不到类型'Shd.FilteredQueryViewForm'的构造函数."
并且派生类的设计者不会加载.我已经尝试重新启动vs2010beta,重新创建派生表单,但似乎没有任何帮助.谷歌在这个问题上没有给我带来任何有用的结果.:(
这是Visual Studio 2010 Beta的问题吗?或者我做错了什么?
我们有一个应用程序必须灵活地向用户显示它的主要形式 - 取决于用户,表单应该略有不同,可能在这里或那里的额外按钮,或一些其他细微差别.为了停止编写代码以显式删除或添加控件等,我转向视觉继承来解决问题 - 我认为这是一个整洁,干净和逻辑的OO风格 - 事实证明,继承表单的一半时间很难在VS中渲染自己没有充分的理由等 - 我觉得开发人员和微软在某种程度上避开了Visual Inheritance的做法 - 你能否证实这一点,我在这里遗漏了什么?
问候.
我在.net windows应用程序中有几个表单,它们有一组通用的文本框和其他用户输入控件,每个表单都有相同的外观,但每个表单都需要加载并保存到不同的数据库表.
将控件放在基本表单上并从中继承或创建用户控件以放在每个表单上会更好吗?
设置:
我创建了一个Form我希望将其作为我继承其他形式的基础。该基本表单充当某种“模板”,但它还提供了大量与结构相关的功能,以及所提供的所有控件的相互关系。
以下图像的入门...顶部的信息色栏是继承自 的自定义控件ToolStrip。底部条带是另一个定制,同样继承自ToolStrip。左边的白色块是 a TreeView,右边的块是 a TabControl(已删除TabPages其中的所有内容...我打算将它们添加到继承的表单中)。
设计器中基本表单的图像:

设计器中继承形式的图像:

显然,唯一的区别是,当我打开继承的表单时,每个控件上都会叠加一个小框图标,当我单击它们时,我会看到挂锁,告诉我无法编辑。
问题:
继承窗体上的所有控件都被锁定。我研究了视觉继承的问题,据我所知,我没有使用任何明确不支持它的控件,正如此链接所暗示的那样。在本次问答中,汉斯建议更改这些控件的修饰符,我已经这样做了。事实上,我都尝试过,Public但Protected都没有好的结果。
我很困惑。
我正在使用C#.Net并且有一个由多种形式继承的基本形式.
直到昨天,当在设计器中打开子(派生)表单时,将显示基本表单控件并显示为已锁定.
现在,表格只是空白.设计器中不显示任何基本表单控件.一切都编译,构建和运行正常.
有没有人见过这个?
我已尝试在派生形式OnLoad方法中调用基本形式InitializeComponent方法,但无济于事.
我有两种形式.第一个有TToolBar和两个TToolButton.第二个继承第一个,还有三个TToolButton.我在设计时更改了按钮的顺序,将第二个表单的三个按钮放在第一个表单的按钮之前.当应用程序运行时,第二个表单的按钮出现在第一个表单的按钮之后.
有没有办法在设计时使用订单?
假设您有一个名为 的表单FormBase,并且所有其他表单都继承自该表单。
例如,我有public class Form formTest : FormBase
我现在在 formTest 的 ctor 中拥有什么:
public class Form formTest : FormBase
{
public formTest()
{
InitializeComponent();
Program.MainForm.AddToFormSizes(this, this.Size);
}
}
Run Code Online (Sandbox Code Playgroud)
此代码将 的实例添加formTest到主窗体上的字典中,其名称为size
这可行,但我想将此代码移至,FormBase这样我就不必将这行代码放入每个继承的表单中。
public class Form FormBase : Form
{
public FormBase()
{
InitializeComponent();
Program.MainForm.AddToFormSizes(this, this.Size);
}
}
Run Code Online (Sandbox Code Playgroud)
现在的问题是,当我这样做时,size将在设计时获得 的大小FormBase,而不是 的大小formTest。
有没有办法FormBase捕获 的大小formTest或继承自 的任何其他形式FormBase?
AddToFormSizes作为参考,这是MainForm 中的代码
private Dictionary<Form, Size> _formSizes = …Run Code Online (Sandbox Code Playgroud) 我开始在Android上开发应用程序!我需要在几个屏幕的顶部显示共同控制.在Blackberry中,我只使用所需的控件从基本屏幕继承我的屏幕,并从基类型继承UI和行为.
我怎样才能在Android中做类似的事情?我的意思是,我该如何组织它?也许,我需要创建控件或布局,我可以在屏幕上使用它?或者我需要从另一个活动继承一个活动并使用addContentView()?
有什么机会,各有哪些优点/缺点?