2 Stimmen

WinForms: Entwurf vs. Code

Ich bin ein Solo-Entwickler, der eine WinForm App, C# & .Net 3.5, in VS2008 baut.

Es handelt sich im Wesentlichen um eine glorifizierte Anwendung zur Dateneingabe und -abfrage. Meine Frage ist: Ist es normal, dass ich mehr als 60 % meiner Zeit mit "Design" verbringe?

Die Benutzeroberfläche, das Platzieren aller Steuerelemente, das Benennen der Steuerelemente mit einem intuitiven Namen, das Festlegen von Eigenschaften für die UI-Steuerelemente (Modifikator, onFocused-Farbe, usw.). Es scheint, dass ich alle 30 Minuten, die ich mit dem Schreiben von Code verbringe, doppelt so viel Zeit damit verbringe, an der Benutzeroberfläche herumzubasteln. Was mache ich falsch?

Mir ist klar, dass diese Frage unmöglich zu beantworten ist, also werde ich mich mit einigen allgemeinen Hinweisen begnügen.

  • Gibt es eine Möglichkeit, dass bestimmte Eigenschaftseinstellungen standardmäßig gesetzt werden für alle UI Controls gesetzt werden?
  • Gibt es eine schnellere Möglichkeit zur Bearbeitung der als das Anklicken und bearbeiten?
  • Ist das wirklich ein Produkt meines Mangels an mangelnder Planung? Ist die Lösung, eine alles geplant und aufgeschrieben zu haben damit ich es gleich beim ersten Mal richtig mache?

Es ist wirklich sehr frustrierend, denn ich liebe den Aspekt des Programmierens, aber ich habe das Gefühl, dass ich mehr Zeit damit verbringe, dafür zu sorgen, dass meine Schrift lesbar ist (ich habe eine halbwegs ältere Benutzergruppe)!


EDIT zur weiteren Ausarbeitung aufgrund von Rückmeldungen!

Die App, die ich mache, ist eine Winform-Portierung einer Webform, ASP.Net-App. Voll funktionsfähig und in Gebrauch. Ich bin nicht erlaubt, die Datenbank-Schicht an dieser Stelle zu ändern, aber wegen der Art der WinForm vs WebForm die UI hat unter gegangen große Änderungen. Ich verlasse die DAL & BLL für das Ende, so kann ich zunächst sehen, wie viel von ihnen kann ich wiederverwenden.

Ich weiß, dass dies wahrscheinlich nicht normal ist, aber in diesem Szenario schien es am sinnvollsten zu sein. Macht das meine Frage klarer?

3voto

CloudyMusic Punkte 2391

Gibt es eine schnellere Möglichkeit, die vorhandenen zu bearbeiten, als sie anzuklicken und zu bearbeiten?

Sie können mit STRG+Klick auf mehrere Formularsteuerelemente klicken, die eine gemeinsame Eigenschaft haben (z. B. Font, ForegroundColor oder ähnliches), und die Änderung an allen Steuerelementen gleichzeitig vornehmen. Die Eigenschaften der verschiedenen Steuerelemente werden auch im oberen Teil des Formularcodes definiert (ich glaube, der Abschnitt ist normalerweise standardmäßig eingeklappt). Diese Eigenschaften werden automatisch aktualisiert, wenn Sie den Formulardesigner verwenden, um Änderungen vorzunehmen, aber Sie könnten sie stattdessen im Code ändern, indem Sie Suchen+Ersetzen verwenden, wenn Sie viele ähnliche Änderungen vornehmen müssen.

Ist das wirklich ein Produkt meiner mangelnden Planung? Ist die Lösung, dass ich das alles geplant und aufgeschrieben habe, damit ich es beim ersten Mal richtig mache?

Planung ist zwar immer gut, aber ich glaube, ich habe noch nie ein komplettes Projekt gemacht, bei dem ich nicht vergessen habe, Folgendes zu berücksichtigen etwas in meinen Plänen. Oftmals fallen einem bestimmte Dinge erst auf, wenn man im Formular herumstöbert, die man hinzufügen muss.

Gibt es eine Möglichkeit, bestimmte Eigenschaftseinstellungen standardmäßig für alle UI-Steuerelemente zu setzen?

routeNpingme's Lösung für dieses Problem ist eine gute :)

2voto

Brandon Punkte 13594

Fühlen Sie sich nicht zu schlecht - es hört sich nicht so an, als würden Sie im Hintergrund dieser App Raketenwissenschaft betreiben, also können Sie sollte viel mehr Zeit aufwenden, um sicherzustellen, dass die Benutzeroberfläche richtig ist.

Ein kurzer Hinweis, falls Sie dies noch nicht getan haben: Wenn Sie ein Formular erstellen, legen Sie die Schriftart auf Formularebene fest. Dann wird alles, was Sie darauf ablegen, diese Schriftart standardmäßig übernehmen.

Diese kleinen Aufmerksamkeiten sind für die Benutzererfahrung von großer Bedeutung.

2voto

Duncan Smart Punkte 29374

Verwenden Sie die Vererbung, um Ihre eigenen Anpassungen zu zentralisieren, z. B.

Fügen Sie eine Klasse namens MyButton hinzu, sagen wir:

using System;
using System.Drawing;
using System.Windows.Forms;

namespace MyApp
{
  class MyButton : Button
  {
    public MyButton()
    {
      this.BackColor = Color.Pink;
      this.Font = new Font(SystemFonts.DialogFont.FontFamily, 12, FontStyle.Bold, GraphicsUnit.Point);
    }

    protected override Size DefaultSize
    {
      get
      {
        return new Size(150, 50);
      }
    }
  }
}

Sie erscheint dann als ein Steuerelement in der Toolbox, das Sie per Drag & Drop auf das Formular ziehen können, anstelle der normalen Schaltfläche.

1voto

Hans Passant Punkte 894572

Sie machen es wahrscheinlich falsch herum. Sie sollten sich nicht viel um Schriftarten, Farben, Platzierung und Aussehen kümmern, bis nach Sie sind fertig damit, es zum Laufen zu bringen. Das spart eine Menge Zeit, die Sie mit der Optimierung von Steuerelementen verbringen, die Sie dann vielleicht wegwerfen. Auch wenn Sie ein gutes Mock-up der Benutzeroberfläche haben, sollten Sie es hinterher noch einmal machen. Oder wenn der Code nicht fließend ist. Was im Übrigen eine weitere Erklärung sein könnte...

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X