Du könntest dafür sorgen, daß auch beim Drücken der Spacetaste das nächste Feld angewählt wird. Das dürfte den Usern noch am ehesten gefallen, da man die leichter und schneller trifft als . oder ,
Hast Du Dir mein Beispiel mit dem switch angesehen? (Mein vorletzter Beitrag.) Ich kann nicht direkt bei der Initialisierung schon den richtigen Wert zuweisen...
Da es keine automatische Initialisierung gibt muß also in jedem fall eine Zuweisung erfolgen.
Es bieten sich somit die folgenden beiden Varianten:
bool add;
switch (...)
{
case a: add = <contition a>; break;
case b: add = <contition b>; break;
...
default: add = false; break;
}
if (add) ...;
bool add = false;
switch (...)
{
case a: if (<contition a>) add = true; break;
case b: if (<contition b>) add = true; break;
...
}
if (add) ...;
In Variante 1 hat man auf jeden Fall genau eine Zuweisung. Der Wert, der zugewiesen wird, ist nicht zur Compilezeit klar.
In Variante 2 hat man 1 oder 2 Zuweisungen, bei beiden ist jedoch schon zur Compilezeit der Wert, der zugewiesen wird, klar.
Ich habe den Code sehr gekürzt. Eigentlich sieht es in etwa folgendermaßen aus:
bool add = false;
switch(<switch-condition>)
{
case a: add = <condition a>; break;
case b: add = <condition b>; break;
case c: add = <condition c>; break;
...
...
}
if (add) ...;
Die Alternative ist:
bool add = false;
switch(<switch-condition>)
{
case a: if (<condition a>) add = true; break;
case b: if (<condition b>) add = true; break;
case c: if (<condition c>) add = true; break;
...
...
}
if (add) ...;
Bei Variante 1 gibt es in jedem Fall eine Zuweisung. Die Wert ist aber zur Compilezeit noch unklar. Bei Variante 2 gibt es nicht immer eine Zuweisung und wenn, dann ist der Wert schon zur Compilezeit klar.
Der Setter ist natürlich für das ganze Dictionary. Wenn Du ein Element des Dictionarys setzt, wird der Setter fürs Dictionary natürlich nicht durchlaufen.
ich arbeite mit VS2005 und habe in meiner Anwendung ein Menü, daß ich mit dem Form-Designer zusammengebastelt habe. Nun kann/muß man da ja auch angeben, welchen Text ein MenuItem anzeigen soll. Man trägt dort Konstanten ein. (Wenn ich die Code-Analyse laufen lasse, wird an der Stelle gemeckert, daß ich die Bezeichnungen aus einer Resource-Datei holen soll...)
Ich möchte aber wie empfohlen, den (sprachabhängigen) Text aus einer Resource-Datei holen.
Z.Zt. mach ich es so, daß ich nach der Ausführung der Methode InitializeComponent(), die vom Code-Designer generiert wird, die Texte neu setze. Schöner fände ich es, wenn ich im Form-Designer den entsprechenden Methodenaufruf für den Text angeben könnte, anstatt einer Konstanten und es nicht hinterher überschreiben müßte.
Wenn ich einfach den Code (InitializeComponent()) selber editiere, wird meine Änderung verworfen, sobald der Code mal wieder neu erzeugt wird. (Ist ja auch klar.)
Kann man da was machen, oder geht es nur so, wie ich es gelöst habe?
Es ist wohl allgemein so, daß Visual Studio 2005 jede Datei, die zu einem Projekt gehört zum Check-In anbietet, ganz gleich welche Endung sie hat und ganz gleich, ob sie im Repository schon existiert. Zumindest konnte ich keinen Weg finden, das zu verhindern.
Wenn jemandem noch was einfällt, wie es doch geht, wäre ich sehr dankbar. Jedesmal darauf achten zu müssen, die Datei nicht mit einzuchecken, ist ganz schön lästig.
Mit VS2003 war das übrigens kein Problem. Da mußte die web.config nicht zum Projekt gehören. Es reichte, wenn sie lokal im Verzeichnis lag...
Ich habe VSS gestartet und dort bei den File-Types bei der File-Group WEB *.config entfernt. (In allen anderen File-Groups gab es kein *.config.) Desweiteren habe ich die web.config bei VSS gelöscht.
Bei VS2005 hat nun die web.config das gelbe Plus. Sie wird als neue Projekt-Datei behandelt. Wenn ich nun für die ganze Solution 'check in' anwähle, bekomme ich eine Liste aller ausgecheckten Dateien. Da ist die web.config mit dabei. Ich habe hier nur die möglichkeit die web.config zu deselektieren. Beim nächsten mal siehts dann wieder genauso aus....
Das Festlegen der Standarddateitypen scheine ich also entweder nicht richtig verstanden/gemacht zu haben, oder es hat keine Auswirkung.
Die Option "Nur einchecken, was es gibt", sehe ich nirgends.
Ich habe die web.config aus der VSS Verwaltung rausgeschmissen und bei VSS bei File-Types das *.config entfernt.
Dennoch will Visual Studio 2005 die web.config einchecken, wenn ich für die ganze Solution 'check in' wähle. Wenn ich viel ändere und dann alles einchecken will, will ich nicht jedesmal darauf achten müssen, daß web.config nicht mit eingecheckt wird...
Hm, dann bin ich vieleicht mit Blindheit geschlagen. Wie geht das? Bei SourceSafe gebe ich doch ganze Projekte an. Da wird alles alles was in einem Verzeichnis steht eingebunden. Eine Option, einzeln Dateien auszuschließen sehe ich nicht...
Ich arbeite mit VS2005 und SourceSafe.
Das Projekt wird an mehr als einem Rechner bearbeitet. (Daher ist auch SourceSafe nötig...)
Nun das Problem:
Auf jedem Rechner muß eine eigene web.config benutzt werden.
Beim Ein- Auschecken des Projekts soll also die web.config übergangen werden.
Wie stelle ich das an? Die web.config wird leider automatisch unter die Kontrolle von SourceSafe gestellt.
web.config aus dem Projekt ausschließen geht nicht, da dann nicht gedebuggt werden kann.
Ich glaub ich muß mir demnächst mal 'n gutes Buch zum Thema .net Windows Forms holen und lesen. Ein wenig Grundlagenwissen hilft sicher viel. Zur Zeit bastel ich mit Hilfe der Visual-Hilfe... Funktioniert recht gut, aber es wäre doch angenehmer genauer zu wissen, was da eigentlich abläuft. Gibt es da ein besonders gutes Buch, das mir jemand empfehlen kann?
Daran liegts leider wohl nicht.
Ich habe das füllen mal ganz ans Ende des Construktors verlegt. Das half nichts. Habe auch mal nur das Selektieren ans Ende gestellt. Das half auch nichts.
Das einzige, was bisher hilft, ist der Zugriff auf listBox.SelectedItems.Count.
Scheint so, als würde erst dadurch die Selektion entgültig gemacht.
Jetzt müßte man mal den Source-Code der Listbox haben...
Nun das Problem: Wenn ich mein Prog laufen lasse, und ein bestimmtes Event erzeuge, wird der im Code beschriebene Panel erzeugt und angezeigt. Leider sind die Einträge in der Listbox nicht selektiert. Wenn ich in Zeile 24 statt der 2 listBox.SelectedItems.Count benutze, wird selektiert. Das will ich aber eigentlich gar nicht. Weiß einer eine Lösung?
Mein Programm unterstützt WebDAV.
Ich kann mit dem Windows Explorer durch die Verzeichnisse (Collections) wandern, Dateien löschen etc.
Info: Ich arbeite asynchron (mit BeginAccept/EndAccept & BeginReceive/EndReceive).
Wenn ich nun eine neue Datei reinkopiere, habe ich folgendes Problem:
Der Explorer schickt mir zunächst einen HEAD Befehl, den ich korrekt beantworte. Dann schickt er einen PUT-Befehl.
Von dem bekomme ich leider nur das erste Paket (mit dem Header). Aus dem lese ich das Attribut "Content-Length" aus und weiß dann, daß da noch mehr Daten kommen müßten, als ich bisher bekommen habe. Deshalb rufe ich wieder BeginReceive auf. Jetzt müßte eigentlich meine ReadCallback-Methode wieder aufgerufen werden, sodaß ich weiter empfangen kann. Genau das passiert aber nicht. Es sieht so aus, als hätte der Windows Explorer nichts weiteres gesendet. Das kann aber nicht sein, denn das wäre ein fataler Bug...
Seltsam ist, das es mit Word funktioniert. Wenn ich mit Word eine neue Datei erzeuge und diese dann in meinem WebDAV-Ordner speichere, klappt es. Es kommt nach einem PROPFIND und einem LOCK (wie es sein soll) ein PUT Befehl. In dem ersten Paket ist zunächst nur der Header enthalten (genau wie beim Explorer). Ich erkenne anhand der "Content-Length", das da noch mehr kommen müßte, rufe BeginReceive auf... Und siehe da: die ReadCallback-Methode wird erneut aufgerufen und ich kann den Rest empfangen...
Hat jemand Idee? Wieso klappt es mit Word, nicht aber mit dem Explorer???
Braucht der Explorer eine Sonderbehandlung? Wie könnte die aussehen? Muß ich schon nach dem Empfang des Headers einen Response schicken? Und was müßte da dann drinn stehen? Im Response soll ja stehen, ob der PUT Erfolgreich war. Das weiß ich doch aber zu dem Zeitpunkt noch gar nicht...
weiß jemand von Euch, ob und wie es möglich ist, die Dokumentation mit den ///-Komentaren und den xml-Tags wie <summary> mehrsprachig zu machen?
Das muß doch irgendwie möglich sein. Immerhin bekommt man im deutschen "MS Visual Studio .net" deutsche Hinweise, wenn man mit der Maus über eine Klasse aus dem Framework geht...