Laden...

Anfänger Frage: Controls von anfangs an richtig benennen

Erstellt von jok3r89 vor 6 Jahren Letzter Beitrag vor 6 Jahren 2.078 Views
J
jok3r89 Themenstarter:in
70 Beiträge seit 2017
vor 6 Jahren
Anfänger Frage: Controls von anfangs an richtig benennen

Hallo,
ich bin in C# eher der Quereinsteiger, und schreibe gerade ein Programm für die Arbeit. Alles läuft ganz gut nur die Bedienung stört mich etwas. Ich glaub eher ich weiß dazu etwas nicht...

Wenn ich einen Btn hinzufüge wird ja automatisch im form.Designer.cs der code erzeugt. Anschließend kann ich den Namen in der GUI ändern der code wird auch geändert.
So was mich aber jetzt stört wenn ich etwas umbenenne wird meine Methode mit dem Ereignis Click nicht umbenannt.
Was mir dabei auch komisch erscheint ab und zu wird die Click Methode automatisch mit einem Standard Namen erzeugt und manchmal eben nicht..
wie macht man das richtig ?
Es ist doch irrsinnig immer alle Namen ändern zu müssen
Gruß

16.834 Beiträge seit 2008
vor 6 Jahren

Fortgeschrittene Entwickler benutzen den Designer gar nicht, denn als Fortgeschrittener ist der Designer i.d.R. einfach langsamer was die Entwicklungszeit betrifft.
Daher erübrigt sich das Problem, da man mit der Zeit eigentlich auf den Designer eben verzichtet und alles selbst in der Hand hat.

Zu Namen in C#:
[Artikel] C#: Richtlinien für die Namensvergabe

D
985 Beiträge seit 2014
vor 6 Jahren

There are 2 hard problems in computer science: cache invalidation, naming things, and off-by-1 errors.

😁

W
196 Beiträge seit 2008
vor 6 Jahren

Um vielleicht auch mal eine sinnvolle Antwort zu liefern: Wenn Du den Button erst umbenennst und DANACH die Click-Methode generierst bekommt diese auch den passenden Namen. Ansonsten vllt. noch das Stichwort 'Refactoring' - wenn Du die Methode umbenennst wird der Name - wenn Du alles richtig machst - auch in der *.designer.cs angepasst...

@Abt: Was Du da schreibts ist ein Witz oder...

3.003 Beiträge seit 2006
vor 6 Jahren

Wenn ich einen Btn hinzufüge wird ja automatisch im form.Designer.cs der code erzeugt. Anschließend kann ich den Namen in der GUI ändern der code wird auch geändert.
So was mich aber jetzt stört wenn ich etwas umbenenne wird meine Methode mit dem Ereignis Click nicht umbenannt.

Die Refactoring-Tools von Visual Studio werden zwar mit jedem Release besser, aber mit so etwas haben sie so ihre Schwierigkeiten. Dedizierte VS-Addons bekommen das naturgemäß viel besser hin, finden die meisten relevanten Erwähnungen und benennen die dann gleich mit um. Beispielsweise:


partial class SimpleBoundForm : Form
{
    public SimpleBoundForm(ExampleController controller)
    {
        InitializeComponent();
        _exampleTextbox.DataBindings.Add("Text", controller, "TextProperty");
    }
}

Wird jetzt per VS-Refaktoring die Property "TextProperty" der Klasse "ExampleController" umbenannt, übersieht VS diese Zeile, was zu einer ungültigen Datenbindung führt. Resharper (nur ein Beispiel) hat dagegen damit überhaupt kein Problem.

Langer Rede kurzer Sinn: die richtigen Tools verwenden, oder mit den Einschränkungen leben.

LaTino

"Furlow, is it always about money?"
"Is there anything else? I mean, how much sex can you have?"
"Don't know. I haven't maxed out yet."
(Furlow & Crichton, Farscape)

J
jok3r89 Themenstarter:in
70 Beiträge seit 2017
vor 6 Jahren

erst mal vielen Dank,
Ich hab eben ein wenig Erfahrungen mit Xcode und Swift sammeln können, und da läuft das alles irgendwie so intuitiv ab. Und hier fehlt mir immer wieder etwas damit ich damit warm werde.
Gruß

3.003 Beiträge seit 2006
vor 6 Jahren

erst mal vielen Dank,
Ich hab eben ein wenig Erfahrungen mit Xcode und Swift sammeln können, und da läuft das alles irgendwie so intuitiv ab. Und hier fehlt mir immer wieder etwas damit ich damit warm werde.
Gruß

Glaub's ruhig: umgekehrt ist es genauso. Normale Umstellungsschwierigkeiten. Davon ab ist VS (MIT Addons) meiner Meinung nach immer noch die beste existierende IDE (selbst, wenn man programmiersprachenunabhängig vergleicht). Aber mit solchen Aussagen haben schon Glaubenskriege angefangen 😉.

LaTino

"Furlow, is it always about money?"
"Is there anything else? I mean, how much sex can you have?"
"Don't know. I haven't maxed out yet."
(Furlow & Crichton, Farscape)

2.298 Beiträge seit 2010
vor 6 Jahren

Hallo jok3r89,

zuallererst einmal gebe ich zu, auch ich gestalte Oberflächen lieber mit dem Designer. Das hat den Vorteil dass ich sofort sehe wie es aussieht. Würde ich das manuell machen, müsste ich mich viel zu sehr dem Layouting widmen. - Klar kann es, wenn man weiß was man tut schneller sein. Ich finde es aber unschön Controls im Code zu positionieren.

Nun zum Thema: Wenn du ein Control auf der GUI erzeugst, lege zuerst den Namen fest bevor due Ereignis-Handler registrierst. Damit hast du nicht das Problem, dass du diese im nachhinein umbenennen musst.

Das die Ereignishandler mal mit dem Standardnamen (vermutlich button1_click) angelegt werden und in einigen Fällen nicht, kann ich nicht nachvollziehen. Standardmäßig werden die Ereignishandler nach dem Control und Ereignis benannt.

Wenn du nun doch einmal den Fall hast, dass du ein Control nachträglich noch einmal umbenennen musst, solltest du auf oben beschriebene Refactoring-Addons zurück greifen.

Wissen ist nicht alles. Man muss es auch anwenden können.

PS Fritz!Box API - TR-064 Schnittstelle | PS EventLogManager |

1.040 Beiträge seit 2007
vor 6 Jahren

Das die Ereignishandler mal mit dem Standardnamen (vermutlich button1_click) angelegt werden und in einigen Fällen nicht, kann ich nicht nachvollziehen. Standardmäßig werden die Ereignishandler nach dem Control und Ereignis benannt.

Das liegt daran, WANN der Eventhandler angemeldet wird. 😉
Wird es vor der Umbenennung gemacht, heißt das Ding eben button1_Click, nach der Umbenennung dann halt AddButton_Click oder so.

=> Name des Eventhandler = "Control-Name" + "_" + "Event-Name" 😁

16.834 Beiträge seit 2008
vor 6 Jahren

@Abt: Was Du da schreibts ist ein Witz oder...

Nö.

2.298 Beiträge seit 2010
vor 6 Jahren

Hallo p!lle,

das ist mir durchaus klar. - Seiner Beschreibung entnahm ich was anderes und auf seine Beschreibung habe ich geantwortet. Und folgst du meiner Aussage, siehst du auch dass das von mir beschriebene zu nahezu 100% dem von dir ausgeführten entspricht.

Wissen ist nicht alles. Man muss es auch anwenden können.

PS Fritz!Box API - TR-064 Schnittstelle | PS EventLogManager |

1.040 Beiträge seit 2007
vor 6 Jahren

War auch nur eine Ergänzung bzw. denke ich, meinte er genau das mit seiner Beschreibung. 😉