Question Composant vs. Contrôle


Dans le monde des contrôles WinForms .Net

Quelle est la différence entre Composant et Contrôle?

  • Un contrôle peut-il contenir un composant?
  • Un composant peut-il contenir un contrôle?

10
2018-03-23 09:44


origine


Réponses:


Un contrôle a toute la plomberie nécessaire pour agir comme une fenêtre. La possibilité de répondre aux messages de fenêtre (WndProc) et d'avoir un Handle en tête. Le composant manque tout ça. C'est vraiment simple, il a du temps pour la conception et peut être éliminé, c'est tout.

Les composants peuvent toujours avoir une représentation à l'exécution, OpenFileDialog étant le meilleur exemple. Mais c'est en fait une boîte de dialogue intégrée à Windows, pas à Windows Forms.


7
2018-03-24 19:40



Un composant est juste une représentation d'un objet / sous-API. par exemple. ImageList est un composant invisible et qui n'est qu'une API dans un ensemble d'images. Le fait de pouvoir les glisser et les déposer sur des formulaires est simplement du sucre dans le concepteur.

Un contrôle est destiné à être visible / interactif / imbriqué.


1
2018-03-23 09:47



En réponse à votre commentaire, le composant et le contrôle peuvent être vus dans le navigateur d'objets comme provenant de différentes hiérarchies d'objets. Un composant ne peut pas être ajouté dans un contrôle, car la collection Controls accepte uniquement les objets avec le type de base de contrôle.

Un composant ne peut pas contenir de contrôles.


1
2018-03-23 10:36



UNE composant est fondamentalement une classe (ce peut être un dll, objet Activex).

  • Il n’a pas de fonctionnalités d’interface utilisateur, c’est pourquoi vous ne pouvez pas voir de représentation visuelle.
  • Il est portable et non spécifique à aucune langue.

Alors que d'autre part contrôle est un composant qui fournit des fonctionnalités d'interface utilisateur.

  • Comme le contrôle a une interface utilisateur, vous pouvez voir sa représentation visuelle.
  • C'est une langue spécifique et non portable.

1
2017-09-13 06:40