我们有一个应用程序具有的灵活性如何,它显示它的主要形式向用户取决于用户的形式应该稍微不同的,也许一个额外的按钮在这里或那里,或其他一些细微的差别。为了停止编写代码,以明确删除或添加控制等等,我转过身来,视觉的继承解决问题-什么我还以为是一个整齐干净的和合乎逻辑的OO风格--原来的一半时继承的形式,有一个困难时渲染式在VS没有很好的理由等等-我得到的感觉,开发人员以及某种程度上Microsoft有回避的做法可视继承-你能确认这一点,是我失去了一些东西在这里?

问候。

有帮助吗?

解决方案

我以为他们已经或多或少排的桌面设计问题于2005年。你有没有试过通常的罪魁祸首?

  • 没有抽象的控制类型
  • 没有构造的论点的任何形式的
  • 初始转移到Form_Load而不是构造函数
  • 没有控制在相同的项目的用户控件/表格,他们把里面的
  • 关闭所有文件的>清洁>重建
  • 重新启动VS

我似乎认为,只要你有没有所有上述它的工作。....大部分。

其他提示

我在研究向(当然很快就要被废弃的)万加元,以及部分它素是觉得继承.

我个人已经没有什么大问题,但是,还有 是的考虑考虑.

对我来说, 主要的问题具有永远的初始化..你需要记住的设计师不能不实例的形式相同的方式在运行时(同样,它不能做这个带网络的开发,这就是为什么在乎是必要的定制控制渲染).

此外, 一旦一个形式是改变,完全重新建设项目的需要 为了传播更改的形式对儿童的形式继承。

我个人没有看到任何证据表明,它已经被"排斥". 据我所知,它仍然良好的实践锻炼码的再利用在可能的情况。觉得继承提供。

我可以建议创建一个新的问题与 实际 问题你都有,样本代码?然后我们可以看着它,看看我们是否可以获得它的工作并解释为什么:)

我已经看到了一些问题在VS2005与此有关。他们大多是由于问题与建设的形式,对象在设计师。有问题的代码,试图访问数据库的形构造,等等。

你可以调试的问题,这开始的第二个实例visual studio和装载了第一例在调试器。如果你设置的断点在你的代码然后你可以调试什么会发生在设计师的第一个实例。

另一个问题我可以记得是仿制药在形成的课程

public class MyForm<MyObject> : Form

这不会工作

我经常遇到这样的问题在Visual Studio.在许多情况下MSVS形式的设计师未能呈现的形式是否正确。回来的日子里,我曾与它我不得不这样做的所有种奇怪的技巧,以使一些复杂情况。但是我认为,使用视的继承是非常有益的,不应抛弃不管MSVS设计师的错误。

我想我已经找到一个方式如何避免这个问题。

不钩Form_Load事件在你父母的形式,这将破坏的设计师。

也不要采取默认的空constructor离Visual Studio在母体的形式。如果你想要依赖注射,另外创建一个构造。

是这样的:

public ProductDetail()
{
    InitializeComponent();
}

public ProductDetail(ISupplierController supplierController) : base()
{
    InitializeComponent();
    this.supplierController = supplierController;
}

你可以那么还在做这个,从你的继承的形式:

public NewProduct(ISupplierController supplierController)
    : base(supplierController)
{
    InitializeComponent();
}

这个工作对我来说迄今为止,我有一些奇怪的设计问题。

谢了丹尼尔

读取这样的: http://cs.rthand.com/blogs/blog_with_righthand/archive/2005/11/10/186.aspx

据我所知,仍有问题,有些继承和物体依赖于集合的设计元素,通常格控制等等。我相信MS仍然已经删除的可能性改变。前。内在的继承的形式/用户控件等。但是其他的控制文、形式、用户控件,小组等。应该工作的预期。

我们迄今为止没有任何问题与VI使用第3党格控制我自己,但你必须小心谨慎,特别是,删除项目从收集必须是可以避免的。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top