C# GUI设计中的自定义组件与默认组件。哪个更实用?(.NET)

C# GUI设计中的自定义组件与默认组件。哪个更实用?(.NET),c#,.net,ide,components,C#,.net,Ide,Components,好的,那么创建我自己的组件(从现有组件继承它们或从头创建它们)还是使用默认组件更好呢 我是在可伸缩性、开销和其他因素的保护下提出这个问题的,这些因素对我的每个选择都有影响 更新:如果我说得不清楚,很抱歉。我真的不知道如何更好地解释自己。继承每个默认组件不是一个好主意吗?例如,如果我要设计一个相当大的应用程序,例如我需要更改DateTimePicker上的显示格式,该怎么办。是否应该提前考虑并继承它,使用继承的组件而不是默认组件 但是,在小型应用程序中,它不会增加很多开销吗?我认为您的问题没有明确

好的,那么创建我自己的组件(从现有组件继承它们或从头创建它们)还是使用默认组件更好呢

我是在可伸缩性、开销和其他因素的保护下提出这个问题的,这些因素对我的每个选择都有影响

更新:如果我说得不清楚,很抱歉。我真的不知道如何更好地解释自己。继承每个默认组件不是一个好主意吗?例如,如果我要设计一个相当大的应用程序,例如我需要更改DateTimePicker上的显示格式,该怎么办。是否应该提前考虑并继承它,使用继承的组件而不是默认组件


但是,在小型应用程序中,它不会增加很多开销吗?

我认为您的问题没有明确的答案-这取决于您需要的功能。如果标准组件满足您的需求,那么我认为创建您自己的组件是没有意义的

我认为你的问题没有确定的答案——这取决于你需要的功能。如果标准组件满足您的需求,那么我认为创建您自己的组件是没有意义的

这是一个很难回答的问题,可能会被视为主观问题。这取决于您正在做什么,以及在现有组件上扩展它的可支持性是否低于包装一个全新组件(继承的或不继承的)和所有需要的支持工作


例如,假设我们有一个文本框,我们总是希望文本是绿色的。我们只需设置文本框的字体属性就可以了,这将是简单而直接的,不需要自定义组件。但是,如果我们希望它始终是绿色的,而不是可变的,并且无论文本框中可能会放入什么内容都可以强制执行,该怎么办?这将需要更多的代码和应用程序中的一定数量的设计工作,或者我们可以创建一个自定义组件来为我们完成这项工作,并让它作为文本框显示给每个实现它的人。从本质上简化部署的代码(通过将其隐藏在控件中),并使总体设计更清晰。如果我们只需要在一个地方使用这个文本框,这可能有些过分,但是如果这个文本框对我们的应用程序至关重要,那么花时间可能是值得的。

这是一个很难回答的问题,可能会因为主观原因而关闭。这取决于您正在做什么,以及在现有组件上扩展它的可支持性是否低于包装一个全新组件(继承的或不继承的)和所有需要的支持工作

例如,假设我们有一个文本框,我们总是希望文本是绿色的。我们只需设置文本框的字体属性就可以了,这将是简单而直接的,不需要自定义组件。但是,如果我们希望它始终是绿色的,而不是可变的,并且无论文本框中可能会放入什么内容都可以强制执行,该怎么办?这将需要更多的代码和应用程序中的一定数量的设计工作,或者我们可以创建一个自定义组件来为我们完成这项工作,并让它作为文本框显示给每个实现它的人。从本质上简化部署的代码(通过将其隐藏在控件中),并使总体设计更清晰。如果我们只需要在一个地方使用这个文本框,这可能有些过分,但是如果这个文本框对我们的应用程序至关重要,那么花时间可能是值得的