Hallo ich habe folgendes Problem
Ich möchte per XSD eine Klasse definieren welche ich per XML Serialisieren und Deserialisieren kann. Innerhalb dieser Klasse habe ich eine Collection von Points. Gibt es irgendwelche möglichkeit diese Points innerhalb der xsd datei schon als System.Drawing.Point zu definieren? Ich mag nicht jedes mal meinen eigenen Point Array durchlaufen um dann einen neuen Drawing.Point Array anzulegen. Gibt es ggf andere möglichkeiten wie ich das gewünschte erzielen kann?
Funktionen die z.B. Standardmäßig nach dem deserialisieren aufgerufen werden und diese Konvertierung machen könnten? Wichtig ist einfach das die Klasse welche per XSD.exe generiert wird, so erhalten bleibt wie sie generiert wurde. Es nützt mir nichts innerhalb der erzeugten CS Datei etwas zu ändern, da diese eh immer neu generiert werden soll. Mir fällt da spontan nichts sinnvolles ein wie ich das lösen könnte.
Dir wurde schon vor 5 Monaten weitergeholfen.
http://www.c-plusplus.net/forum/viewtopic-var-t-is-266107.html
Hier noch einen anderen Thread zum Thema:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-272550.html
Aber dieser Thread wird geschlossen, kannst gerne den alten wieder hervorholen, falls du es wirklich ernst meinst.
Grüssli
Es wird alles durch gerouted, das ist korrekt. Aber nur der owner des Controls kennt es tatsächlich.
Sobald du selber ein EventHandler setzt, also das Event fangen möchtest, wird intern dieses AddHandler aufgerufen, somit lauscht das Window dann aktiv auf dieses Event.
Manche AddHandler werden auch durch Templates gesetzt.
O.o schrieb:
Ich kann das Verhalten bei mir leider nicht reproduzieren. Das einzige was mir aufgefallen ist ist, dass beim Start von "mblctr.exe" eine Meldung erscheint, dass das Windows Mobilitätscenter nur auf Laptops verfügbar sei.
Benutzt du einen Desktop-PC und du siehst nur die Fehlermeldung nicht?
Danke ,das war die Lösung.Ich habe es auf einem Laptop ausprobiert und da funktioniert es.
Vielen Dank
Thomas P
Da wird einfach ein Vollbild (FullScreen Fenster über den Desktop mit entsprechendem Filter gelegt und darüber dann das eigentliche Anzeigefenster (in Farbe).
Also erst ein CopyFromScreen und dann ein Schwarz/Weiß-Filter (Helligkeit jedes Pixels als RGB gespeichert, denn (0x0,0x0,0x0) ist schwarz (0x80, 0x80, 0x80) ist mittelgrau und (0xFF, 0xFF, 0xFF) ist weiß). Die Helligkeit könnte z.B. mittels der HSV-Berechnung ermittelt werden oder aber als (R+G+B)/3.
Für Grafik-Filter-Programmierung kann ich dir die LowLevelGraphicsLibrary empfehlen.
Habe ich vor kurzem erst empfohlen: http://www.c-sharp-forum.de/viewtopic.php?p=619022#619022
Für dich dürfte dann der GrayScale-Filter interessant sein:
new GrayScale().Execute(bitmap);
IMMER Property.
Damit Du im Zweifelsfall verfolgen kannst, wer den Fehler verurscht hat. Einfach ein if/throw in set rein und fertig. Fenster Aufrufstack und man hat ihn.
Ok, fast immer. Wenn Du sicher bist, daß niemals obige Suche nötig ist und Du nicht zwischen read- und write-Rechten unterscheiden willst und niemals unterscheiden willst, und die lächerlich wenigen 5 Takte (heute eine Nanosekunde) (sogar abnehmend, weil die Prozessorbauer sich natürlich des Problems annehmen) für den Zugriff sparen willst, dann halt anders.
Die Schreibarbeit ist ja nicht das große Ding. Die Lesearbeit ist das blöde. Also ich habe stets mindestens 10-mal so viel Lese-Arbeit wie Schreib-Arbeit. Fehlersuche halt. Wenn ich die Quote langsam verbessert habe, gehe ich halt komplizierter Probleme an, so daß ungefähr 1:10 bleibt.
So ein Standard-Property-Ding lese ich weg wie als nicht anders als wenn es als rohes Attribut dastände. Damit ist Get/Set-Property eigentlich nicht teurer. Beim Lesen. Also bei allem, auf was es ankommt. Wenn es mehr als nur nichts tut, muß ich natürlich nachdenken. Aber dann ist es in C# genau dort gut aufgehoben und minimaldenkisch. Also gut.
Weiche nur ab von "Attribute immer private", wenn Du weißt, daß es Performance bringt und du weißt, daß die Zusatzperformance im Gesamtprogramm auch noch ausreichend Einfluß hat. edit: Wobei das sogar eine Optimierung ist, die ein Hauptschüler nach entsprechender Einarbeitung ausmessen könnte und nach vorgegebenem Scheme auswählen könnte und zu 99% optimal wäre. Mach Attribute immer private und erwarte, daß Dein Compilerbauer den Compiler (und deswegen auch die VM) verbessert. In zwei oder drei Jahren haben die es gelöst.
Wenn ich den Kalender deaktiviere und die UpDown Ansicht nutze klappt es. Die Zuweisung im Konstruktor setze ich, das ist nicht das Problem es geht wirklich nur um das öffnen der Kalenderansicht. Wenn ich das Event anfangen könnte bevor value verändert wird wäre ich wunschlos glücklich
Ich habe nur bisher keine Möglichkeit gefunden, weil OnDropDown aufgerufen wird nachdem value geändert wurde....
Hi,
Indem Du das Property WindowState der Form setzt.
http://msdn.microsoft.com/de-de/library/system.windows.forms.form.windowstate.aspx
http://msdn.microsoft.com/de-de/library/system.windows.forms.formwindowstate.aspx
Willkommen im richtigen Forum
Hier haben wir auch die Lösung für Ihr Prolbem. Es heisst: Lies die Dokumentation
-> http://msdn.microsoft.com/en-us/library/6yfzc507.aspx
Vor allem möchte ich auf den zweiten Parameter hinweisen. Das ist der Top-Left Punkt, wo das Bild hingezeichnet werden soll. Wenn dieser auf endCap gesetzt wird, dann wird die Kopie am unteren rechten Eck gezeichnet. Es landet kein einziger Pixel im Bitmap. Vielleicht wäre es sinnvoll, diesen auf new Point(0, 0) zu setzen
Grüssli
Ich würde dafür dann eine FormManager-Klasse erstellen, welche den Aufruf einzelner Forms vornimmt und die Rechte überprüft. Dieser Klasse kannst du dann ein Dictionary<Type, UserRights> spendieren, welche du einmalig dort füllst:
dict.Add(typeof(UserForm), UserRights.EditUser | UserRights.ViewUser);
So kannst du dann explizit je Form die Rechte bestimmen und vor dem Anzeigen abfragen (bzw. entsprechende Menüs/Buttons enablen/disablen).
Als Zusatz könntest du auch noch eine allg. Basisklasse für alle deine Forms erzeugen, welche z.B. die aktuellen Rechte schon im Konstruktor übergeben bekommt (falls z.B. Unterscheidung zwischen view/edit vorgenommen werden soll).
Und wie meine Vorposter schon sagten, benutze entsprechende Benutzergruppen (ich hoffe mal, ihr verwendet dann eine Datenbank dafür). Du solltest auf keinen Fall direkt die User mit dem Programm verknüpfen!
Danke fürs Probieren. Ich habe aber nochmal nachgeguckt, jetzt geht es.
Der Grund war ein Panel, das über der Form drüber war und das ich übersehen habe.
Du kannst nen neuen Socket machen und den binden (ohne Angabe eines Ports), dann hast du einen Socket der auf einen (ehemals) freien Port gebunden ist.
Ohne den Port gleichzeitig zu "belegen" wäre ja nicht garantiert dass er lange frei bleiben würde. Könnte sein dass in dem Moment wo du ihn ermittelt hast schon ein Socket auf den Port gebunden wird.