Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von Programmierhans
Thema: TabPage-Text wird nicht automatisch zentriert: Workaround gesucht
Am im Forum: GUI: Windows-Forms

Ein einfaches RecreateHandle auf dem TabControl und schon dreht sich die Erde wieder.


            ((System.Reflection.MethodInfo)typeof(TabControl).GetMethod("RecreateHandle", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.InvokeMethod)).Invoke(this.tabControl1,null);

Gruss
Programmierhans

Thema: Kunde zögert die Zahlung heraus...
Am im Forum: Smalltalk

Kommt mir bekannt vor...

Einer unserer Kunden verzögert auch gerne Rechnungen (wenn 1 Position bestritten wird, dann wird die ganze Rechnung zurückbehalten)....

Ein nettest Mail geschickt, dass bei Nichtbezahlung der Wartungsgebühren die Wartung bis zur vollständigen Bezahlung eingestellt wird hat da Wunder bewirkt.

Gewisse Kunden brauchen einfach den Zwang :-)

Thema: Schließen von Forms führt zum Absturz der Anwendung
Am im Forum: GUI: Windows-Forms

Der Fehler sagt ja ganz klar welches Problem Du hast. (vermutlich eine Collection geändert während Du darüber iterierst).

Im VisualStudio gehst Du auf Debuggen/Ausnahmen

Dann bei Common Language Runtime Exceptions bei Ausgelöst einen Haken setzten.

Dann lässt Du Deine Anwendung wieder laufen.

Wenn die Exception ausgelöst wird, dann stehst Du auf der verursachenden Zeile (vermutlich in einem foreach).

Gruss
Programmierhans

Thema: [erledigt] psshutdown per Process.Start ausführen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Wieso nicht direkt ?

Rechner runterfahren [==> Code-Snippets für den Shutdown]

Thema: Usercontrol (Menu) funktioniert im Tabcontrol nicht richtig
Am im Forum: GUI: Windows-Forms

Du reichst ja nur das Visilbe Property des Buttons durch. Und vermutlich macht die TabPage den unsichtbar.

Speichere den Wert in einem eigenen Property.

Thema: UserControl in Designer erst nach Resize sichtbar
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Control.DesignMode ist tückisch

Guckst Du Designer hat Probleme mit meinem Control

Thema: UserControl in Designer erst nach Resize sichtbar
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

np dafür ist ja das Forum da.

Möge der Designer mit Dir sein. :-)

Thema: UserControl in Designer erst nach Resize sichtbar
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Debug es mal wenn es im Designer gehostet wird.

Guck hier habe ich mal beschrieben wie man so was debuggen kann: (nicht alles lesen... nur wie Du es Debuggen kannst)

UserControl kann im Designer nicht hinzugefügt werden

Ev. läuft Dein Load nicht durch... oder this.Visible im Load tut nicht das was Du denkst :-)

Thema: OpenNETCF - List Item um Tag-Eigenschaft erweitern
Am im Forum: Rund um die Programmierung

Alternative Idee

Dictionary<ListItem,object> dictAdditionalPropertiesForListItem


Jedes ListItem in diese liste mit dem zugehörigen object (welches Du in das Tag reinschreiben wolltest)...

So kannst Du dann jederzeit über das Dictionary auf dein Tag-Objekt zugreifen.

Thema: On-the-fly Regex-Tester: Regex-Lab
Am im Forum: Projekte

Auch mir hat das Teil sehr bei der Ausarbeitung von Ausdrücken geholfen (und nochmal ein Dank an herbivore).

Nur so als Tipp: Wenn ein Ausdruck im Tester funktioniert... aber im .Net Code nicht, dann kann es eigentlich fast nur daran liegen, dass per Default im Tester IgnoreCase geflaggt ist... (Habe ich dann nach mehr als 20 minütiger Suche auch irgendwann festgestellt).

Thema: Steuerelement sofort anzeigen und nicht erst am Ende der Schleife
Am im Forum: GUI: Windows-Forms

Nein

Thema: Datensätzte nur in einem Datums bereich anzeigen
Am im Forum: Datentechnologien

Du kannst ja leicht ermitteln welche Geräte im Moment verliehen sind.

Mach doch einen NOT IN Select auf die verliehenen Geräte.

PS: Habe schon seit Jahren kein SQL mehr gebraucht... deshalb mache ich auch keinen Vorschlag wie das in SQL genau aussehen müsste.

Thema: Etiketten drucken
Am im Forum: Rund um die Programmierung

Such mal hier im Forum (Etiketten) das wurde schon bis zum Abwinken diskutiert.

Thema: Fremdes Programm in eigener Applikation in Grid-Spalte starten möglich?
Am im Forum: GUI: WPF und XAML

Hast Du mal versucht beim SetParent das Handle deines Panels (statt des Forms) zu übergeben ?

Thema: Im RAM erstellte PLT-/HPGL-Datei drucken
Am im Forum: Rund um die Programmierung

Ist zwar VB.Net aber vermutlich genau das was Du suchst...

Gewusst wie: Senden von Rohdaten an einen Drucker mithilfe von Visual Basic .NET

Thema: TCP-Keepalive und Erkennen des Disconnect
Am im Forum: Netzwerktechnologien

Schau Dir das noch an...

(Socket) Prüfen ob Client/Server noch online sind

Gruss
Programmierhans

Thema: Panel => einmal dynamisch mit Controls befüllen und dann wiederverwenden
Am im Forum: GUI: Windows-Forms

Zitat von csharp_benutzer
Ich finde hier keinen Bezug zu meiner Frage. Die Form-Instanz existiert ja nach der Beendigung des Moduls nicht mehr.

Ja die Form nicht... aber du könntest ja eine Ref auf das Panel halten und dieses später wiederverwenden...

Aber wenn Du das nicht vestehst, dann fehlt es wirklich an Grundlagen.

Gruss
Programmierhans

Thema: Panel => einmal dynamisch mit Controls befüllen und dann wiederverwenden
Am im Forum: GUI: Windows-Forms

Hallo Zusammen

Form-->Panel-->VieleControls

Vor dem Wegschmeissen des Forms machst Du ein Form.Controls.Remove(Panel).

Wenn Du ein neues Form brauchst, wieder Form.Controls.Add(Panel).

Das sind aber wirklich Grundlagen der allerersten Stunde....

Gruss
Programmierhans

Thema: PictureBox Invoke wird nicht ausgeführt
Am im Forum: GUI: Windows-Forms

Bleibt hängen... tönt nach Deadlock...

Wo (im UI-Thread) hast du den Thread gestartet und was machst Du dann im UI-Thread ? hast Du da ev. ein Thread.Join auf genau diesen Thread drin ? Dann würde der Join den UI-Thread blockieren und der Invoke kommt dann nicht rein...

Gib mal ein wenig mehr Code ...

Gruss
Programmierhans

PS: Wenn der Code stillsteht... schau mal im Threads-Window wo die einzelnen Threads stehen... steht davon einer auf einem .Join ?

Thema: Bug in CodeDom GenerateEvent: MemberAttributes.New wird nicht berücksichtigt
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo herbivore

Nicht schlecht die Idee... wobei bei einem Event kann ich das Pragma nur als Member des Typen einfügen (es kommt dann einfach immer ganz am Anfang der Klasse)...


ctdB.Members.Add(new CodeSnippetTypeMember("#pragma warning disable 0108"));

Aber so ist die Warnung nun weg.

Danke sehr vielmals

Gruss
Programmierhans

Thema: Bug in CodeDom GenerateEvent: MemberAttributes.New wird nicht berücksichtigt
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Danke euch beiden...

Gibt es allenfalls ein Attribut [CompilerHaltFresseBeiWarnung(CSxx)] welches ich noch drauf generieren könnte um den Compiler zum Schweigen zu bringen (ich habe keines gefunden)...

Sonst werde ich mit der Warnung leben ... gibt schlimmere Probleme.

Gruss
Programmierhans

Thema: Bug in CodeDom GenerateEvent: MemberAttributes.New wird nicht berücksichtigt
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo Miteinander

Ich habe einen Bug gefunden im CodeDom. Kann das bitte jemand verifizieren.

Auf dem CodeDom generiere ich aufgrund von Metadaten gewisse Klassen. Dabei kann es vorkommen, dass eine Klasse vererbt wird. Die vererbte Klasse erbt natürlich auch die Events der BasisKlasse. Allerdings kann es sein, dass die vererbende Klasse denselben Event erweitern muss (es wird dabei ein EventArgs verwendet welches vom EventArgs der BasisKlasse abgeleitet ist).

Idealerweise blendet der Event der neuen Klasse den Event der BasisKlasse nur aus.

Folgendes Sample soll aufzeigen was ich mache.

Klasse A ist die Basisklasse mit einem Event vom Type EventHandler (EventArgs).

Klasse B leitet von A ab und will den Event ausblenden und stellt dafür einen Event (mit demselben Namen) vom Type CancelEventHandler bereit (dessen CancelEventArgs leitet ja von EventArgs ab).


Effektiv sind es natürlich eigene EventArgs-Klassen (aber das würde das Sample nur unnötig kompliziert machen).



using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.CodeDom;
using System.CodeDom.Compiler;

namespace BugInCodeComGenerateEvent
{
    class Program
    {
        static void Main(string[] args)
        {
            string strGeneratedCode = null;
            System.CodeDom.CodeCompileUnit ccu = new System.CodeDom.CodeCompileUnit();
            System.CodeDom.Compiler.CodeDomProvider provider = System.CodeDom.Compiler.CodeDomProvider.CreateProvider("CSharp");

            CodeNamespace ns = new CodeNamespace("Bug");
            ccu.Namespaces.Add(ns);

            //Create a new Class  A
            CodeTypeDeclaration ctdA = new CodeTypeDeclaration("A");
            ns.Types.Add(ctdA);
            
            //Create a new Event TestEvent in A
            CodeMemberEvent cmeATestEvent = new CodeMemberEvent();
            cmeATestEvent.Name = "TestEvent";
            cmeATestEvent.Type = new CodeTypeReference(typeof(EventHandler));
            cmeATestEvent.Attributes = MemberAttributes.Public | MemberAttributes.Final;
            ctdA.Members.Add(cmeATestEvent);

            //Create a new Class B (Inherits from A)
            CodeTypeDeclaration ctdB = new CodeTypeDeclaration("B");
            ctdB.Attributes = MemberAttributes.Public | MemberAttributes.Final;
            ctdB.BaseTypes.Add("A");
            ns.Types.Add(ctdB);

            //Create a new Event TestEvent in B
            CodeMemberEvent cmeBTestEvent = new CodeMemberEvent();
            cmeBTestEvent.Name = "TestEvent";
            cmeBTestEvent.Type = new CodeTypeReference(typeof(System.ComponentModel.CancelEventHandler));
            cmeBTestEvent.Attributes = MemberAttributes.Public | MemberAttributes.Final | MemberAttributes.New;
            cmeBTestEvent.Comments.Add(new CodeCommentStatement("public event EventHandler TestEvent; is wrong (new-Attribute is missing)"));
            cmeBTestEvent.Comments.Add(new CodeCommentStatement("public new event EventHandler TestEvent; would be correct"));
            ctdB.Members.Add(cmeBTestEvent);

            /*
             * Have a look at: Class: Microsoft.CSharp.CSharpCodeGenerator
             * 
             * Compare Methods: GenerateMethod with GenerateEvent
             * 
             * GenerateMethod calls:
             * 
             * 			this.OutputMemberAccessModifier(e.Attributes);    (public / internal protected ....)
			            this.OutputVTableModifier(e.Attributes);          (new )
			            this.OutputMemberScopeModifier(e.Attributes);     (abstract / virtual ....)
             * 
             * GenerateEvent only calls:
             * 
             * this.OutputMemberAccessModifier(e.Attributes);    (public / internal protected ....)
             * 
             * --- Calls to OutputVTableModifier and OutputMemberScopeModifier are missing
             */

            using (MemoryStream ms = new MemoryStream())
            {
                IndentedTextWriter tw = new IndentedTextWriter(new StreamWriter(ms));
                // Generate source code using the code generator.
                provider.GenerateCodeFromCompileUnit(ccu, tw, new CodeGeneratorOptions());
                // Close the output file.
                tw.Close();
                strGeneratedCode = System.Text.Encoding.UTF8.GetString(ms.GetBuffer());
            }
            System.Diagnostics.Debug.WriteLine(strGeneratedCode);
            Console.WriteLine(strGeneratedCode);
        }
    }
}



myCSharp hat doch gute Kontakte zu MS... falls sich der Fehler bestätigt... wäre doch toll wenn das Forum den Fehler zu MS rüberschieben könnte.


Edit: Hier noch der Output:


namespace Bug {
    
    
    public class A {
        
        public event System.EventHandler TestEvent;
    }
    
    public class B : A {
        
        // public event EventHandler TestEvent; is wrong (new-Attribute is missing)
        // public new event EventHandler TestEvent; would be correct
        public event System.ComponentModel.CancelEventHandler TestEvent;
    }
}

Gruss
Programmierhans

Thema: User Control: Eigenschaften aus Eigenschaftsfenster zuordnen
Am im Forum: GUI: Windows-Forms

Der Designer kann nur Objekte auflisten welche sich im selben Kontext befinden (z.B: Wenn dein UserControl ein Property Button hat kannst Du aus den Buttons auswählen welche sich im selben Container befinden wie Dein UserControl).

Aber wenn ich schon nur lese, dass ein UserControl einen Verweis auf ein Form haben will.... das schreit sehr laut nach "falsches Design".

Gruss
Programmierhans

Thema: Event soll warten bist vorheriges Event fertig ist
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Zitat von herbivore
Events werden synchron ausgeführt. Es passiert also automatisch, was du willst.


Mit der Einschränkung, dass dies nur so ist, wenn die Events nicht aus eigenen Threads geworfen werden.

Gruss
Programmierhans

Thema: Event in Form aus Klasse starten
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Die FAQ wird deine Fragen beantworten:

[FAQ] Eigenen Event definieren / Information zu Events (Ereignis/Ereignisse)

Thema: Trotz Verwendung von CryptoStream stehen die Daten zusätzlich unverschlüsselt in der Datei
Am im Forum: Rund um die Programmierung

Mit Copy/Paste ist es eben nicht getan...

Man sollte auch verstehen was man sich da zusammenkopiert...


Tipp: --> Konfiguration = (Config)formatter.Deserialize(fs);

Gruss
Programmierhans

Thema: DataGridView: Zellen aufgrund von Bedingungen einfärben
Am im Forum: GUI: Windows-Forms

@romu2000

Bitte jeweils genau darauf achten was Du schreibst....

Zuerst schreibst Du was von DataGrid... und später von DataGridView....

Also welches Control setzt Du ein ?

Gruss
Programmierhans

Thema: Bilder Umwandeln und in DB speichern
Am im Forum: Grafik und Sound

Schau Dir mal die Thumbnail-Methode in folgendem Beispiel an:

Listbox für Bilder

Thema: GridView MainForm und EditForm
Am im Forum: GUI: Windows-Forms

Also ich würde das ganze DS übergeben (ist ja nur eine Referenz).

Und wenn Du im Main und EditForm mit Databinding arbeitest, dann müsstest Du nur noch imn EditForm denselben BindingContext setzten wie im MainForm... und schon würde im EditForm auf Current-Record des MainForm gebunden

DataSource=DS
DataMember=Name der Tabelle

Gruss
Programmierhans

Thema: [erledigt] Game Console Redirect Input/output
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Könnte hiflreich sein: Console als Steuerelement einbinden