Du bist nicht angemeldet.

FAtheone

VB-Geek

  • »FAtheone« ist männlich
  • »FAtheone« ist der Autor dieses Themas

Beiträge: 1 335

Dabei seit: 14. Juni 2009

Wohnort: OSI Layer 8

Hilfreich-Bewertungen: 42

  • Private Nachricht senden

1

Mittwoch, 11. August 2010, 18:56

Grundlagen: Benennung von Controls (Update: 24.10.2010)

Hallo,

Da ich in letzter Zeit oftmals Neulinge darauf hinweisen muss*, ihren Controls Namen zu geben,
hier mal meine "Nomenklatur"

Hinweis: Dieser Thread steht bewusst unter "Grundlagen", damit Neulinge ihn dort finden.
Man könnte Analog dazu den Thread [VB.NET] Beispiele für guten und schlechten Code (Stil) im Hauptforum sehen.

An dieser Stelle möchte ich nochmal darauf hinweisen, dass Fragethreads mit dem Titel "Frage" auch in "Ziegelstein" umbenannt werden könnten (meistens ist der Thread dann genauso aufschllussreich).
Als Anleitung zur richtigen Lösungsfindung hat der User Auvid folgenden Link gepostet:
Smart Questions
Bitte liest ihn euch (bis zum Ende) durch und nehmt es euch zu Herzen. Das erhöht die Qualität des Forums, die Effektivität der Suchfunktion und beschleunigt die Beantwortung einer Frage, da sich dann Leue, die sich mit dem Thema gut auskennen eher in eure Topic verirren, als wenn sie "Frage" "Problem" o.ä. heißt.
Wenn ihr eine Fehlermeldung habt, guckt am Besten ersteinmal in der MSDNnach, was diese bedeutet. In letzter not könnt ihr wenigstens noch den Namen der Fehlermeldung in die Überschrift schreiben.

Nun aber mal los:

1.How to
Alle, die es wissen können diesen Schritt überspringen. Es geht um die Benennung von Controls.
Hierzu klicken wir das Control im Designer an (Einfacher Linksklick). Nun erscheit im Eigenschaften-Dialog** (i.d.R. rechts unten) eine Liste der Eigenschaften. Sollte der Eigenschaften-Dialog nicht angezeigt sein, so drückt ihr F4 oder View->Properties Window. Sollte dies nicht der Fall sein, so vergewissert euch, dass ihr dort den "Properties"-Knopf gedrückt habt (Links von den "Events" - dem Blitz). Nun scrollt ich nach ganz oben ins Feld "(name)". Dort könnt ihr die Namen dann eingeben und sie werden automatisch in Code geändert. Sollten Fehler auftauchen, so kann es sein, dass dies nicht erfolgte und ihr die Namen im Code (-Replace-) auch noch ersetzen müsst.



2.Dateien
Ich benutze generell ein Kleinbuchstaben-Tripel-Prefix für Controls und Dateien

Klassen: cls (Class)
Module etc.: vb (Visual Basic)
Formulare: frm (Form)
Startformular: frmMain
Splash-screen: frmSplash

3.Controls

Button: cmd (Command)
TextBox: txt (Text)
MaskedTextBox: mtb
RichTextBox: rtb
ComboBox: cmb
ListBox: lst (List)
ListView: lv
TabControl: tc
TabPage: tp
ProgressBar: prg
Label: lbl
CheckBox: chk
PictureBox: img (Image)
RadioButton: opt (Option)
TreeView: tv

4. Menüs

Hier bewaht sich die Struktur wieder, Prefix mnu:

mnuMain -> MenuStrip
mnuFile -> Datei
mnuFileOpen -> Datei - Öffnen
mnuFileSaveAs -> Datei - Speichern unter...

5. Klassen-Dateien (danke für die Nachfrage an http://www.vb-paradise.de/user/7790-yaph1l/)

Hier stehen meist mehrere Klassen mit Grossbuchstaben am Anfang in einem Namespace.
Die Datei hat noch das cls-Prefix, damit Klar ist, dass es sich um eine Sammlung von Klassen handelt.
Variablen-Deklarationen sind Geordnet:
Public (Globale)
Private (Lokale)
Properties (Globale)
Properties (Lokale)

Darauf folgen die Methoden (Nomenklatur wie bei Globalen Variablen (auch für lokale Subs/ Functions):
Initialisierer (MyBase.Load, New etc.)
Functions
Subs

Dabei haben Lokale Variablen (-> Dim, Private) und Properties (-> Private Property) einen Kleinbuchstaben voran und Globale einen Grossbuchstaben.

Beispiel:

clsXmlAssistant.vb

Visual Basic Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Namespace XmlAssist
Public Class XmlParser
    Public PBlaTestWort1Mal2 As String
    Dim pA As Integer
    Public Property VarA() As Integer
        Get
            Return pA
        End Get
        Set (value As Integer)
            pA = value Mod 1000000 'Wert auf Max. 6 Stellen
        End Set
    End Property
    'Code
End Class
Public Class XmlNodeInfo
    'Code
End Class
End Namespace


6. Variablen

Variblen (Werte) haben Namen, die aus einem oder mehreren Wörter bestehen.
Dabei haben die Wörter den ersten Buchstaben groß, es sei denn, es handelt sich um das erste Wort einer Lokalen Variable:

Lokale

lokaleVarible
test
temp
alphaBetaGamma

Globale

GlobaleVariable
Test
AnzeigeText
AlphaBetaGammaDelta

7. VB Einstellungen (Options)
Options sind Compiler-Optionen, die euch vor allem auf unsauberen Code hinweisen.
So stellt man sie sich Automatisch ein:

1. Tools->Options

2. Geht auf (Projects and Solutions->VB Defaults) ***
Solltet ihr es nicht sehen, markiert "Show all Settings"
Und vergewissert euch, dass folgende Häkchen gesetzt sind:


8. Abschießendes
Anregungen, Ergänzungen, Kritik, Pinnen (;)) sind gern gesehen.

-Randnotizen-

*Dies ist kein Ausdruck irgendeiner Pflicht a là

Zitat

Da bist da um uns zu helfen

sondern mein Bedürftins, möglichst leserlichen Code in diesem Forum zu verbreiten.
**Ein Screenshot ist zur Identifikation angeheftet.
***Könnte mir hier Jemand den Duetschen Menünamen / Einstellungsnamen nennen? Danke im Voraus
MFG FAtheone


Write in C, write in C, LOGO's dead and buried, write in C...
Von Hilfeanfragen via PN ist ABZUSEHEN; betreffende User werden ignoriert. Hierzu ist das Forum da.

Dieser Beitrag wurde bereits 6 mal editiert, zuletzt von »FAtheone« (24. Oktober 2010, 21:15) aus folgendem Grund: Neuer Abschnitt: VB-Einstellungen + Screenshots


Es hat bereits 1 registrierter Benutzer diesen Beitrag als hilfreich eingestuft.

Benutzer, die diesen Beitrag hilfreich fanden:

TomTerrier

singu

Lib Dev

  • »singu« ist männlich

Beiträge: 5 853

Dabei seit: 6. Oktober 2008

Hilfreich-Bewertungen: 43

  • Private Nachricht senden

2

Mittwoch, 11. August 2010, 19:11

Das ist echt ne gute Anleitung und dieses Thema soll am besten gepinnt werden.
FTPLib 2.1.0.0 - Einfacher Zugriff auf FTP-Server ** TextEffectsLib - Schöne Effekte für TextBox und Label ** ExtendedListView


YaPh1l

Brain.Enabled = True

  • »YaPh1l« ist männlich

Beiträge: 1 117

Dabei seit: 14. Februar 2010

Wohnort: Baden-Württemberg

Hilfreich-Bewertungen: 119

  • Private Nachricht senden

3

Mittwoch, 11. August 2010, 20:12

Irgendwie finde ich das mit den Dateien komisch, da du damit gegen die Regel "Klassen werden groß geschrieben" verstößt.
Wie sähe das .NET Framework denn sonst aus:

Visual Basic Quellcode

1
2
3
4
clsConsole.WriteLine("Bla")
clsWebRequest req = clsHttpWebRequest.Create(...)
Dim btn As New clsButton
' usw...

Oder heißen nur deine Dateien so?
Ansonsten finde ich es sehr gelungen, auch wenn ich für Controls die Postfixnotaion bevorzuge.

Viele Grüße, Phil.
Projekte: NWR (Point&Click) und OTD (Tower Defence)
Visit PR Productions and The Copy&Paste-Crew

OPTION STRICT ON!
Real .NET programmers don't use My.

singu

Lib Dev

  • »singu« ist männlich

Beiträge: 5 853

Dabei seit: 6. Oktober 2008

Hilfreich-Bewertungen: 43

  • Private Nachricht senden

4

Mittwoch, 11. August 2010, 20:18

Es ist jedem selber überlassen, wie er die Klassen nennt. Diese Anleitung ist nur ein Vorschlag
FTPLib 2.1.0.0 - Einfacher Zugriff auf FTP-Server ** TextEffectsLib - Schöne Effekte für TextBox und Label ** ExtendedListView


Dodo

Super Moderator

Beiträge: 4 961

Dabei seit: 5. Oktober 2008

Wohnort: Berlin

Hilfreich-Bewertungen: 586

  • Private Nachricht senden

5

Mittwoch, 11. August 2010, 20:19

Also ich benenne nur die Dateien so, damit man sieht was es für eine Datie ist, da man Klassen ja auch gerne mal in andere Projekte kopiert und da will man ja wissen welches eine Klasse ist, der Name der Klasse ist groß geschrieben und Sinnvoll gewählt.
KEINE VB-FRAGEN ÜBER PN STELLEN!

Wenn du einem Hungernden einen Fisch schenkst, wird er morgen wieder hungrig sein, bringst du ihm das Fischen bei, wird er nie wieder hungrig sein.

Alle Copy & Paste Geber und Forderer, nehmt euch dies zu Herzen!

FAtheone

VB-Geek

  • »FAtheone« ist männlich
  • »FAtheone« ist der Autor dieses Themas

Beiträge: 1 335

Dabei seit: 14. Juni 2009

Wohnort: OSI Layer 8

Hilfreich-Bewertungen: 42

  • Private Nachricht senden

6

Mittwoch, 11. August 2010, 21:26

Es steht ja unter Dateien ;)
Ich benenne diese auch nur so.
 Beispiel:


clsXmlAssistant.vb

Visual Basic Quellcode

1
2
3
4
5
Namespace AXml

'Klassen etc.

End Namespace


-> VB-Datei bezeichnet sich selbst als Klasse, im Code bleibt die Übersicht aka "Wo wurde das definiert"
Ich hbae in VB-Dateien meist mehrere Klassen zu einer Funktionalität.


Ich füge das noch hinzu.

EDIT:
Fertig.

EDIT2:
Habe ich noch i.welche Sachen / Controls vergessen?
MFG FAtheone


Write in C, write in C, LOGO's dead and buried, write in C...
Von Hilfeanfragen via PN ist ABZUSEHEN; betreffende User werden ignoriert. Hierzu ist das Forum da.

Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »FAtheone« (11. August 2010, 21:53)


MAANTECH

jAvatar

Beiträge: 546

Dabei seit: 10. Oktober 2009

Frühere Benutzernamen: MAAN10, MAANTECH

Hilfreich-Bewertungen: 11

  • Private Nachricht senden

7

Donnerstag, 12. August 2010, 10:14

Kann man fürn Button auch btn schreiben, da Command ja noch aus vb6 Zeiten stammt, oder?

mfg MAANtech
This text is not available in your country

jvbsl

Noob

  • »jvbsl« ist männlich

Beiträge: 7 206

Dabei seit: 7. April 2010

Hilfreich-Bewertungen: 397

  • Private Nachricht senden

8

Donnerstag, 12. August 2010, 11:12

richtig...cmd->CommandButton
btn -> Button...
Ich wollte auch mal ne total überflüssige Signatur:
---Leer---

Dodo

Super Moderator

Beiträge: 4 961

Dabei seit: 5. Oktober 2008

Wohnort: Berlin

Hilfreich-Bewertungen: 586

  • Private Nachricht senden

9

Donnerstag, 12. August 2010, 11:19

Kann man fürn Button auch btn schreiben, da Command ja noch aus vb6 Zeiten stammt, oder?

mfg MAANtech

Nein das darfst du nicht tun !!!


lol na klar, das sind Richtlinien keine Pflicht, du kannst deine Controls auch anders benennen. Der Sinn dahinter ist eben, willst du auf einen Button oder so zugreifen tippst du im Code "btn" oder "cmd" und schon werden in der Liste alle Buttons aufgelistet die du hast, ansonsten müsstest dir immer alle Namen der Buttons merken.
KEINE VB-FRAGEN ÜBER PN STELLEN!

Wenn du einem Hungernden einen Fisch schenkst, wird er morgen wieder hungrig sein, bringst du ihm das Fischen bei, wird er nie wieder hungrig sein.

Alle Copy & Paste Geber und Forderer, nehmt euch dies zu Herzen!

picoflop

Böse und gemein!

Beiträge: 5 843

Dabei seit: 19. März 2009

Hilfreich-Bewertungen: 546

  • Private Nachricht senden

10

Donnerstag, 12. August 2010, 11:47

auch wenn ich für Controls die Postfixnotaion bevorzuge.

Hilft einem dann aber nicht bei IntelliSense, oder?
Ich finds immer schön, dass ich mir nicht jede Textbox merken muss, sondern einfach "txt" eingebe und dann alle TBs sehe, die ich erstellt habe.
Von Hilfeanfragen via PN ist ABZUSEHEN!


GUI - Threading Best Of - Async - x64 Excp

RodFromGermany

Der Programmator

Beiträge: 5 636

Hilfreich-Bewertungen: 625

  • Private Nachricht senden

11

Dienstag, 27. Dezember 2011, 13:02

Ich hoffe, ich darf zu diesem alten Thread noch was hinzufügen.
Hier im Forum sollte bezüglich der Benennung von Controls eine Ausnahme gelten.
Da war in einem Thread eine Form mit 24 Labels, die alle einen klugen und inhaltsbezogenen Namen hatten. lblAnzahlStufen, lblGeldZumEinkaufen usw.
Ich wollte das Problem mal fix nachvollziehen und hatte eine Weile damit zu tun, die Namen dieser Labels abzugleichen.
Wenn Probleme vorliegen und in Forms kommen viele Controls vor, sollten diese die Systemnamen haben, damit der Helfende seine Zeit zum Helfen verwenden kann und nicht zum Umbenennen verwenden muss. :thumbup:
Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
VB-Fragen über PN werden ignoriert!

Verwendete Tags

code, Controls, Sauber, Stil, Tipps

Social Bookmarks