Befehle wiederholen sich

1. Keine Code-Tags verwendet (schwer zu lesen)
2. Welche Sprache ist das? Sieht aus wie ein Basic Dialekt. Visual Basic? VBA?
3. Was für eine 19? Ich sehe nur "2". Hast du 19 Buttons für die du das Selbe machen musst?
 
Das ist Visual Basic

Statt der 2 muss 3,4,5,...,19

Unbenannt.JPG
 
Zuletzt bearbeitet:
Leg dir doch eine Liste von Referenzen auf die Buttons an. Ich C/C++ wäre das eine Liste von Zeigern. Keine Ahnung ob VB was Vergleichbares im Angebot hat.
Dann brachst du nur noch mit einer Schleife durch die Liste zu gehen und brachst den Code nur ein mal zu schreiben.
 
Controls[Name] also in C#

Controls["button1"].Enabled = false;

Das ganze noch in einer Schleife...

for (int i = 1; i <= 19; i++)
this.Controls["button" + i].Enabled = false;

Und nach VB übertragen darfst Du selbst - VB ist eine Krux für mich.


Der Cast als CheckBox noch...
for (int i = 1; i <= 19; i++)
((CheckBox)this.Controls["button" + i]).Checked = false;
 
Zuletzt bearbeitet: (Ergänzung TypeCast CheckBox)
Aber wo gibts bei Microsoft Visual Basic 2005 Express Edition eine Eigenschaft mit Index?

Oder meinst du den TagIndexChanged?

Das muss ich zweimal reinschreiben sonst nimmt der den PasswortChar nicht mehr raus.
 
Zuletzt bearbeitet:
Jungs, das ist nicht VB 2008 - das ist Visual Studio 2008!

Und ein Tipp... Steigt gar nicht erst in VB ein, nutzt C#! Viele schöne Features, die das Leben wirklich ungemein erleichtern sind in VS nicht für VB implementiert - aus guten Grunde. Auch mit den Altlasten aus VB-Zeiten muss man sich in VS nicht mehr rumschlagen, verwendet man C#.

Weiterhin ist die Möglichkeit Hilfe zu bekommen wesentlich größer in C# als in VB.
 
Ja allerdings Visual Studio 2008. Unter anderem mit Visual Basic 2008, also .Net 3.5 basierend.

Und ich bin ja normalerweise auch für C#, aber VB.Net+ ist vollkommen in Ordnung. Es lässt sich sogar relativ problemlos in C# übersetzen.

Klar ich rate auch zu C#, aber wenn er sich schon mit VB beschäftigt hat kann er auch dabei bleiben.
 
Zuletzt bearbeitet:
Wie gesagt, nervig ist halt, dass VS viele Komfortfeatures für VB nicht liefert - eben aus gutem Grunde. Mit C# bist Du wesentlich schneller unterwegs - und das nicht aufgrund der anderen Syntax.
 
1.) Ich arbeite seit längerem mit VB.NET und kann sagen, dass das sehr praktisch ist. C# ist mir da viel zu C-lastig (vielleicht deshalb der Name;))

2.) Ich würde einmal damit anfangen, allen Buttons einen sinnvollen Namen zu geben, sonst kennt sich nachher kein Schwein mehr aus.

3.) Kannst du mir sagen, was du mit dem Code bezwecken willst:
if checkBox2.checked=true then
textbox2.passwordchar="*"
checkbox2.checked=true
else
checkbox2.checked=false
end if

Wieso setzt du das checked auf true bzw. false? das ist ja schon true oder false. Da kannst du gleich folgendes draus machen:

if checkbox2.checked then '=true kann man weglassen
textbox2.passwordchar="*"
else
textbox2.passwordchar=""
end if

4.) Ich denke mir, dass das nach dem Handles nicht stimmen kann. Da fängst du ja zweimal dasselbe Ereignis ab.

5.) Darf man fragen, warum du überhaupt 19 verschiedene Textfelder, Checkboxen und Buttons brauchst? Vielleicht liegt ja da schon der Fehler und man kann es wesentlich eleganter lösen z.B. einem Button, Textfeld und Checkbox und einer Listbox, wo du festlegen kannst, was jetzt aktiv ist.

6.) Das mit dem Clipboard habe ich selbst noch nicht gekannt. Ist das ein einfaches Copy und Paste?
 
1.) In VB.NET kannst Du weder automatisch Interfaces extrahieren lassen, noch funktionieren die Refactoring-Möglichkeiten von VS, noch gibt es die praktischen Vorlagen, wie zum Beispiel das automatische Generieren von Delegaten... Viel Spaß mit VB.NET.
 
Bisher hat mich das noch nicht wirklich gestört :p

Ok bisher hat noch kein Programm von mir die Grenze von 2-3K Zeilen überschritten (meistens um die 1K), aber mir ist noch nie ein Programm untergekommen, wo mir das irgendwie abgegangen wäre.
 
1.) Du solltest uns vielleicht einmal erzählen, was das Programm überhaupt tun soll. Es kann ja sein, dass es wirklich nicht anders geht, aber daran zweifle ich irgendwie:D

2.) Du könntest dir für jede Funktion, die ein Buttonclick etc. abfängt eine Funktion schreiben, der du den Namen der Buttons, der Testbox und der Checkbox übergibst und die das tut, was du willst, aber der Code ist ja sowieso schon sehr kurz mit :

if checkbox2.checked then
textbox2.passwordchar="*"
else
textbox2.passwordchar=""
end if

3.) Du könntest in einer Funktion gleich mehrere Buttons abfangen und dann ein select case machen, das dann bei einem bestimmten Button eine Funktion aufruft und den Namen der Checkbox, Textfeld, Button etc. übergibt), aber dass du jeden Button einzeln behandelst, das wird dir keiner abnehmen können, auch wenn es nur eine Zeile ist, da ja das Programm nicht weiß, welche Checkbox zu welchem Button gehört etc.
 
Zurück
Oben