7
votes

Comment est le constructeur par défaut de système.Drawing.graphics supprimé?

Lorsque j'essaie de créer un objet de graphiques, pourquoi ne fonctionne-t-il pas le travail suivant?

System.Drawing.Graphics graphicsObj = new System.Drawing.Graphics();


0 commentaires

3 Réponses :


11
votes

Les constructeurs par défaut ne sont créés que par le compilateur C # s'il n'y a pas d'autres constructeurs déclarés. Dans ce cas, il semble que tous les constructeurs soient internes ou privés. Fondamentalement, vous ne vous en construisez pas une vous-même - vous demandez un d'une image, de contrôle ou de quelque chose, ou de vous en avoir donné un pour les événements de peinture, etc.


0 commentaires

0
votes

Microsoft n'a pas donné les constructeurs d'objets graphiques. Le seul moyen de créer une instance se fait par le biais des méthodes statiques, telles que la créationGraphics () ou Themage (). C'est pourquoi votre code ne fonctionne pas. De plus, comme Sidenote, l'objet graphique ne peut pas être hérité de.


2 commentaires

En fait, Microsoft a donné les constructeurs de classe graphiques, sinon le compilateur aurait généré un constructeur par défaut public. Microsoft n'a tout simplement pas fait de constructeurs qu'ils ont ajouté public.


D'accord! Il y a en effet des constructeurs. Juste aucun qui peut être accessible au public



3
votes

Il est intuitivement évident que les graphiques ne peuvent pas avoir de constructeur par défaut. Vous voulez toujours ce que vous dessinez pour être visible quelque part. Un constructeur par défaut n'a pas pu sélectionner la destination du dessin.

façons d'obtenir un objet graphique:

  • graphiques.fromImage () . Vous fermerez dans un bitmap. Commun lors de la résolution des images ou de créer une "toile".
  • contrôle.creategraphics () . Passez-vous directement à l'écran. Toujours mal, utilisez plutôt:
  • événement de peinture. L'argument E.Graphics vous permet de dessiner à l'écran.
  • Événement d'impression. Pour la classe PrintDocument, E.Graphics finit sur un morceau de papier.
  • graphiques.fromhdc () . Utilisation dans le code P / invoke à bas niveau, dessine sur un contexte de périphérique de Windows.
  • graphiques.fromhwnd () . Comme ci-dessus, tire directement dans une fenêtre natale.

    en résumé:

    • Dessine à l'écran avec l'événement de peinture
    • Dessine à l'imprimante avec l'événement d'impression
    • Dessinez dans un bitmap avec fromimage ()

0 commentaires