Hallo Jens,
das geht mit beiden GUIs (WinForms und WPF).
Bei WinForms einfach den Form.WindowState auf Maximized setzen.
Und damit sich auch die Controls entsprechend vergrößern, schau dir die Eigenschaften 'Dock' und 'Anchor' an.
Unix-Tom schrieb:
Und als Hinweis.
Nimm nicht Access (mdb) sonderen SQL Compact.
Find ich auch eine bessere Idee.
Vor allem mit dem Entity Framework [Code First] sehr angenehm.
micha7 schrieb:
Hallo,
Hellsgore schrieb:
In dem du beim SendMessage / eher PostMessage (damit deine Anwendungs nicht wartet bis dein Tastendruck wirklich gesendet wird) beim HWND das Fensterhandle des Empfangsfensters mitgibst.
Stimmt. Meine Frage bezog sich nur auf SendInput, da wird nämlich kein HWND übergeben. Hat sich aber inzwischen erledigt, siehe unten.
Ne, das geht bei SendInput und keyb_event nicht. Dort musst du tatsächlich das Fenster in den Vordergrund setzen.
Der Rest sieht doch gut aus. Sollte so funktionieren.
Gruß
Hellsgore
Ja, das gilt für alle Anwendungen. Es kann dann sein, daß sich keine Menüs mehr öffnen, falsch gezeichnet wird, etc.
Ich mußte deswegen mal eine meiner Anwendungen umschreiben, da ich eine komplexe GUI mit verschachtelten TabPages hatte und es dann bei vielen TabPages zu diesen Effekten kam -> die untergeordneten Controls habe ich dann dynamisch bei einem TabPage-Change jeweils neu erzeugt (und mir nur die Inhalte im Speicher gemerkt).
Hmmm, ich glaube ich habe das Problem gelöst... Ich habe fälschlicherweise den Event BeginEdit verwendet und der tritt auch auf, wenn der Benutzer schon nur auf das leere letzte Feld klickt.
Grüsse
Jasper
Ok. Ein Tipp:
foreach (string guid in GroupIDs)
{
ctrl.Enabled = myGroups.Contains(guid);
}
Warum wird ctrl.Enabled hier mehrfach gesetzt?
Also EIN- und DASSELBE ctrl.Enabled.
Schau mal hier hast du einen Link zum Thema Lambda-Ausdruecke, das ist das was ich dort Verwende: http://msdn.microsoft.com/de-de/library/bb397687.aspx
Wenn du deine alte Liste unveraendert lassen willst dann kannst du OrderBy benutzen. Ansonsten benutzt du Sort der Klasse List<T>
hans234 schrieb:
GPC schrieb:
Hat man nur normale statische Methoden und instanziert die Klasse nie, dann mach sie static. Ist semantisch wertvoll
Naja alle (member/methoden) sind nicht statisch.
--> Also erschließt sich in folge: wann mache ich members/methoden statisch
(dann darf ich auch die Klasse statisch machen ...)
Na ja, bei Variablen/Properties ist die Sache klar: Soll es eine Variable pro Klasse nur 1x geben und nicht einzeln für jede Instanz, dann static.
Bei Methoden ist es ein bisschen Geschmacksfrage. Gruuuuundsätzlich kann man eine Methode static machen, wenn Sie keine Instanz-Methoden/Variablen der Klasse nutzt. Allerdings sehe ich in C# von dieser Regel ab, denn auf static-Methoden kann man nur über den Typnamen zugreifen und nicht auch über einen Instanznamen, so wie in C++. Das sieht dann meistens unschön aus, wenn man einen wilden Mix aus Instanz und Typaufrufen hat.
Ich mache das nach Gefühl, wenn es static sein kann, aber nicht unbedingt muss. Like a pro :p
Achtung Edit: schon gelöst (siehe unten)
Hallo zusammen,
ich versuche gerade eine GUI für eine Schachspiel mit Windows Forms zu erstellen.
Ich bin ein ziemlicher Neuling bei bezüglich WIndows Forms.
Ich habe dann im Designer einen TableLayoutPanel auf die Form gezogen und Dock auf FIll gestellt, damit der Panel immer die ganze Form ausfüllt.
Ich habe dann 8 Zeilen und Spalten eingestellt und die Größe jeweils auf 12,5% gestellt.
Ich füge dann in jede Zelle eine PictureBox hinzu:
for(int i = 0; i < 8; ++i)
{
for(int j = 0; j < 8; ++j)
{
PictureBox pb = new PictureBox();
picturesBoxes[i, j] = pb;
pb.SizeMode = PictureBoxSizeMode.Zoom;
pb.Image = bKingImg;
Size test = pb.MaximumSize;
chessBoardLayout.Controls.Add(pb, i, j);
}
}
Das ganze funktioniert zwar, aber wenn ich die Form etwas größer mache, sind zwischen den Bildern SEHR große Abstände sichtbar.
So sieht das dann aus:
http://s7.directupload.net/images/120223/obvyodvy.png
Ich habe auch schon versucht bei der PictureBox Margin auf 0 zu setzen und auch mit verschiedenen SizeModes der PicturesBoxes rumgespielt, aber das hat auch nicht geholfen.
Wisst ihr, was da lost ist? Was kann ich da machen?
Vielen Dank schonmal für eure Hilfe!
Edit: Habs rausgefunden.
pb.Dock = DockStyle.Fill; hats behoben
Sonnenschein5 schrieb:
Was ist der Unterschied zwischen den Beiden ( Vor/- und Nachteile)?
Die Liste ist lang. Sag lieber, was du genau mit der Datenbank vorhast (und nein, "Daten ablegen und wieder lesen" ist keine gute Antwort :P)
µ schrieb:
Optisch ansprechender finde ich aber die Unterscheidung über Groß-/Kleinschreibung im Anfangsbuchstaben:
Ich ebenso, und ich verwende den Resharper (Optionen sind schon was schönes)...
Ihr hattet Recht - es wurde als String und nicht als Variable übergeben *schäm*
Tut mir leid ...
Da hier dann aber der Vorschlag aufkam doch besser einen .Net Datenbanktreiber anstatt ODBC zu verwenden kam und folgende Idee:
Einträge (User, PW, Server) in der Registry und diese dann beim Programmstart auslesen. Funktionieren tut es auch bereits.
Trotzdem würde ich gerne wissen, was Ihr davon haltet ... ist das eine gute Lösung?
Hallo,
problem gelöst.
das funktiniert bei mir nur mit ShellExecute
CreateProcess liefert einnen Fehler 740 = "Der angeforderte Vorgang erfordert erhöhte Rechte."
Stimmt, logisch... habe mir jetzt mal die Mühe gemacht und das in einem kleinem Testcode nachvollzogen. Wenn ich die Sperre jeweils beim Iterieren und Schreiben auf's selbe Objekt setze, funktioniert's. Danke für Deine Anregungen