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 Gerri3d
Thema: Suche nach Spracherkennung Offline
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Gibt es eine empfehlenswerte Möglichkeit, Spracherkennung zu verwenden? Wörter und Befehle sollten auch selbst erweitert werden können. Und es müsste offline sein. Ist ein Uniprojekt - digitale Fabrik..

Thema: Erfahrungen gesucht: Maschinendaten an übergeordnetes System per OPC UA übergeben
Am im Forum: Cross Platform Entwicklung - Mobile und IoT

Hallo, das hört sich durchaus interessant an. Welche Kosten kommen da pro Lizenz auf einen ca zu?

Thema: Anchor Top,Left,Right passt sich beim Minimieren nicht an
Am im Forum: GUI: Windows-Forms

vielen Dank!

Thema: Anchor Top,Left,Right passt sich beim Minimieren nicht an
Am im Forum: GUI: Windows-Forms

..Minimierien

Thema: Anchor Top,Left,Right passt sich beim Minimieren nicht an
Am im Forum: GUI: Windows-Forms

..Maximieren

Thema: Anchor Top,Left,Right passt sich beim Minimieren nicht an
Am im Forum: GUI: Windows-Forms

ja, für die anderen passt es.

Thema: Anchor Top,Left,Right passt sich beim Minimieren nicht an
Am im Forum: GUI: Windows-Forms

Hallo, ich habe im grafische editor eine Groupbox definiert. Das Maximieren klappt, aber beim Minimieren passt es sich nicht mehr an, andere Elemente arbeiten aber korrekt.

Gibt es einen Bug oder muss etwas aktualisiert werden?

Thema: Debugging - Aufruf zurückverfolgen
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo, es wird mehrmals ein PaintEventArgs gestartet, den ich nicht nachvollziehen kann.
Ist es möglich in VS2017 die letzten Aufrufe anzuzeigen bzw zurück zu verfolgen?

Auswirkungen sieht man an einem Messagebox Aufruf, was ein guter Breakpoint ist.

Thema: Wohin mit welchen Teilen eines Events, das über 2 Klassen gereicht wird?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Vielen Dank.
Tatsächlich wird nur eine Berechnung durchgeführt in diesem Programm von daher hatte ich mir nie Gedanken über die Sinnhaftigkeit gemacht.

Was mich mehr verwundert ist, warum der Syntax so im Buch

Visiual C# - Grundlagen und Profiwissen, 2010. Hanserverlag auf Seite 181 beschrieben wird.

Thema: Wohin mit welchen Teilen eines Events, das über 2 Klassen gereicht wird?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

löschen

Thema: Wohin mit welchen Teilen eines Events, das über 2 Klassen gereicht wird?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Zitat von p!lle
Zeige mal bitte den Code, vermutlich wird der EventHandler zu oft angemeldet.

Calculation.cs


        public delegate void MessageOfEventDelegate(object sender, string e);
        public event MessageOfEventDelegate MessageOfEventDelegateInstance1;

        private void MsgBoxEventTrigger(string msg, string capture)
        {
            MessageOfEventDelegateInstance1?.Invoke(this, msg); // gibt null zurück wenn Delegate keine Wert aufweißt - Mind. ein Event-Handler muß angemeldet sein
        }

In Forms1.cs


 private void messageOfEventHandling(object o, string s)
        {
            string caption = "Fehler";
            MessageBoxButtons button = MessageBoxButtons.OK;
            DialogResult result = MessageBox.Show(s, caption, button);
            if (result == DialogResult.OK)
            {
                return;
            }
        }

        private void buttonGeneriere_Click(object sender, EventArgs e)
        {
            // calculate
            calculation = new Calculation(inputData.excelName, inputData.csvCodierungName, inputData.csvKloepperbodenName,
                                            inputData.csvFlanschName, inputData.dxfName, inputData.iniName, inputData.Torch,
                                            inputData.flexIsoMuffe, inputData.flexIsoNippel, inputData.flexIsoFlansch, excelSel);
            
            // Event-Handler anmelden
            calculation.MessageOfEventDelegateInstance1 += new Calculation.MessageOfEventDelegate(messageOfEventHandling);

            // Berechne / Generiere mit allen Circles
            ColCheckAndExportIniData(false);

            // new object - all modifications lost
            buttonReGenerate.Visible = false;

            // Event-Handler abmelden
            calculation.MessageOfEventDelegateInstance1 -= new Calculation.MessageOfEventDelegate(messageOfEventHandling);
        }

        private void buttonReGenerate_Click(object sender, EventArgs e)
        {
            if (calculation == null)
            {
                return;
            }

            // Event-Handler anmelden
            calculation.MessageOfEventDelegateInstance1 += new Calculation.MessageOfEventDelegate(messageOfEventHandling);
            

            // Berechne / Generiere alle nicht abgewählten Circles
            ColCheckAndExportIniData(true);

            // Event-Handler abmelden
            calculation.MessageOfEventDelegateInstance1 -= new Calculation.MessageOfEventDelegate(messageOfEventHandling);
        }

Thema: Wohin mit welchen Teilen eines Events, das über 2 Klassen gereicht wird?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

vielen Dank, hat geklappt.

Da das PopUp (Ereignisbehandlung) mit jedem anmelden des Events (buttonClick) um einmal mehr ausgeführt wird, sollte man ja das Event wieder abmelden.

Gibt es hier ein Standardprozedere?

Ich habe das Event im Augenblick als letzte Anweisung der buttonClick Methode der Form Klasse ausgeführt und es klappt zumindest.

Thema: Wohin mit welchen Teilen eines Events, das über 2 Klassen gereicht wird?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo, ich habe eine Grundlegende Frage zu Events.

Es gibt 2 Klassen, eine zur Berechnung von Werten, die andere ist die standard Windows Forms Klasse "Form1".

Nun möchte ich eine MsgBox aufrufen wenn ein Fehler erkannt wird in der Berechnungsklasse,
klassiches 3 Schichten Software Architecture eben.

Nun zu meiner Frage - wo werden welche Teile des Ereignisses geschrieben?

1. Delegate / delegate
2. Instanz / event
3. Auslösen
4. Ereignisbehandlung
5. Eventhandler anmelden.

1,2,3 in der Berechnugsklasse
4,5 in der Formsklasse?

Es wird eine Instanz der Berechnugsklasse in der Formsklasse erzeugt (ich hoffe dass das soweit verständlich ist)

Gruß Gerri3d

Thema: PaintEventArgs über MouseClick antriggern
Am im Forum: GUI: Windows-Forms

Ich habe einen Tab, auf dem etwas gezeichnet wird. Das klappt auch.
Wird das Tab aufgebaut wird das event angetriggert.

Nun muß ich auch neu Zeichnen, wenn ein Mouseklick Event auftritt, leider steht ich hier aber an.
Kann mir jemand einen Tipp geben?

Zeichenmethode


        private void drawDxf(Graphics g)
{
....
}


Hier PaintEventArgs beim TabAufbau


        private void tabPageDxf_Paint(object sender, PaintEventArgs e)
        {
            Graphics g = e.Graphics;
            drawDxf(g);
        }


Hier das Problem:


        private void tabPageDxf_MouseClick(object sender, MouseEventArgs e)
        {

            int circleIdx = dxfMouseAreaCheck(Convert.ToDouble(e.X), Convert.ToDouble(e.Y));
              
            if ( circleIdx > -1)
            {
                actCircle = (Calculation.S_Circle)calculation.CircleList[circleIdx];
                actCircle.inactive = !actCircle.inactive;
                calculation.CircleList[circleIdx] = actCircle;
            }

            // change Textbox Infos
            textBoxStyle(circleIdx);

            ?? Graphics g = CreateGraphics();
            drawDxf(g);

        }

Thema: MouseMove - MouseEventArgs unzuverlässig?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

du hats recht, es scheint, dass ich die Bereich, die ich auswerte verschoben habe.

Thema: MouseMove - MouseEventArgs unzuverlässig?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Ich will das Ereignis auslösen, wenn ich in einem bestimmten Bereich einer Form bin.

Es gibt mehrere Bereich die in einer List hinterlegt sind. Sobald das Ereignis angestoßen wird, Läuft eine Schleife durch und vergleicht die Cursorposition mit den Hinterlegten Objekten.

Nun wird oft erst nach wiederholtem eindringen in den Bereich das Event ausgelöst.

Gibt es noch etwas zu beachten?


        private void tabPageDxf_MouseMove(object sender, MouseEventArgs e)
        {
            if (pipeData.lengthX == 0 || pipeData.lengthX == 0)
            {
                return;                
            }

            // Update the mouse path that is drawn onto the Panel.
            int mouseX = e.X;
            int mouseY = e.Y;

            // load circles and check if in circle area            
            for (int i = 0; i < calculation.CircleList.Count; i++)
            {
                double vectorX = Convert.ToDouble(e.X) - ((Calculation.S_Circle)calculation.CircleList[i]).CsDrawX;
                double vectorY = Convert.ToDouble(e.Y) - ((Calculation.S_Circle)calculation.CircleList[i]).CsDrawY;
                int vector = Convert.ToInt32( Math.Sqrt( vectorX * vectorX + vectorY * vectorY));
                if ( (((Calculation.S_Circle)calculation.CircleList[i]).DiameterDraw+5) / 2 > vector)
                {
                    textBoxCircleInfo.Text = ((Calculation.S_Circle)calculation.CircleList[i]).ID + "\r\n"
                                            + "Höhe: " + Convert.ToString(Math.Round(((Calculation.S_Circle)calculation.CircleList[i]).height,0)) + " mm \r\n"
                                            + "Höhe (inkl. Klöpperboden): " + Convert.ToString(Math.Round(((Calculation.S_Circle)calculation.CircleList[i]).height + pipeData.kloepperseam[0],0)) + " mm \r\n"
                                            + "Winkel: " + Convert.ToString(Math.Round(((Calculation.S_Circle)calculation.CircleList[i]).angle,1)) + "°";
                    textBoxCircleInfo.BackColor = ((Calculation.S_Circle)calculation.CircleList[i]).ColorDraw;                     
                    break;
                }
                
            }


this.tabPageDxf.MouseMove += new System.Windows.Forms.MouseEventHandler(this.tabPageDxf_MouseMove);

Thema: Linie Zeichnen mit GDI+
Am im Forum: GUI: Windows-Forms

vielen Dank, jetzt klappts. Stimmt schon, alles noch ziemlich schwammig, nur ist .Net, OOP und C# ein dermaßen großes Thema dass man das benötigte als Anfänger schwer bei speziellen Fragen findet.

Jedenfalls zur LÖSUNG:

Ich habe im Form1.Designer.cs das Event für den Tab hinzugefügt:


 this.tabPageDxf.Paint += new System.Windows.Forms.PaintEventHandler(this.tabPageDxf_Paint);

und dann meine Methode im Form1.cs geschrieben:


         private void tabPageDxf_Paint(object sender, PaintEventArgs e)
        {            
                Graphics g = e.Graphics;
                g.DrawRectangle(Pens.Red, 0, 0, tabPageDxf.Width-1, tabPageDxf.Height-1);
        }

Gruß Gerri3d

Thema: Linie Zeichnen mit GDI+
Am im Forum: GUI: Windows-Forms

wo definere ich das es nicht Fform sondern in der TabPage ist?

Thema: Linie Zeichnen mit GDI+
Am im Forum: GUI: Windows-Forms

vielen Dank, ich habe nun versucht simple ein Rechteck zu Zeichnen.
Was auch irgendiwe schon läuft.
Wie kann ich das nun auf einer bestimmten tabPage darstellen?


protected override void OnPaint(PaintEventArgs e)
         {
             base.OnPaint(e);

             Graphics g = e.Graphics;

             g.DrawRectangle(Pens.Red, 25, 25, tabControlHelp.Width-50, tabControlHelp.Height-50);

         } 

Thema: Wie bekomme ich heraus, welche Framework Version benötigt wird?
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Gibt es eine Möglichkeit, anzuzeigen, welche Frameworkversion man braucht bzw welche erweiterungen?


Beispielsweise verwende ich COM um Excell Daten auszuwerten. Das Thema ist noch etwas neu, deshalb mal sorry wenn noch Infos fehlen.

Es geht darum, das der User mit dem Programm dann problemlos arbeiten kann.

Thema: CHM Datei öffnen und einbetten
Am im Forum: GUI: Windows-Forms

Hi, Danke. Schade. Ich werde wohl die *.htm Files im Browser irgendwie anzeigen und so einbetten, dazu bräuchte ich nur ermitteln, welche htm Files in dem Ordner sind. Nicht so elegant aber ja.

Thema: Linie Zeichnen mit GDI+
Am im Forum: GUI: Windows-Forms

Hallo, ich bin noch ziemlich am Anfang und wollte eine einfache Linie Testweise zeichnen.

Hier mal meine FOrm-Klasse:


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace DrawTest
{
    public partial class Form1 : Form
    {
        public Form1()
        {

        }

        private void Form1_Load(object sender, EventArgs e)
        {




        }

        private void ShowLineJoin(PaintEventArgs e)
        {
            InitializeComponent();
            Graphics g;
            g = this.CreateGraphics();

            // Create a new pen.
            Pen skyBluePen = new Pen(Brushes.DeepSkyBlue);

            // Set the pen's width.
            skyBluePen.Width = 8.0F;

            // Set the LineJoin property.
            skyBluePen.LineJoin = System.Drawing.Drawing2D.LineJoin.Bevel;

            // Draw a rectangle.
            e.Graphics.DrawRectangle(skyBluePen,
                new Rectangle(40, 40, 150, 200));

            //Dispose of the pen.
            skyBluePen.Dispose();

        }
    }
}


was fehlt, um die Linie im Form darzustellen?

Thema: CHM Datei öffnen und einbetten
Am im Forum: GUI: Windows-Forms

hab hier mal eine help Methode gefunden, leider wird das CHM wieder extern geöffnet.
https://msdn.microsoft.com/de-de/library/system.windows.forms.help_methods(v=vs.110).aspx

Thema: CHM Datei öffnen und einbetten
Am im Forum: GUI: Windows-Forms

Ich würde gerne eine Hilfedatei (chm Datei mit HTML Help Workshop erstellt) in einem Windows Form Tab darstellen.

Die CHM läuft extern und bei Button_Click (als eigenes CHM File, also nicht eingebettet.

Wenn ich diese nun bei anwählen der TabPage "Help" aufrufen will, passiert leider gar nichts.

Deshalb zwei Fragen dazu -

1. welches elment muß angelegt werden, um die CHM darzustellen
2. wiekann man das starten bei anwählen einer TabPage antriggern?

so funktionierts leider nicht:


        private void tabPageHelp_Click(object sender, EventArgs e)
        {
            Help.ShowHelp(textBox1, "D:\\igm\\dxf\\ChmHelp\\DiemWerkeHelp.chm");

        }

textbox1 ist in der tabPage enthalten.

Thema: Close-Befehl wird nicht gefunden
Am im Forum: GUI: Windows-Forms

Danke, tatsächlich habe ich 3 Klasse.
Eine für Ordner/Verzeichnis/ Dateiverwaltung
Eine die Form
Eine für Berechnungen.

Wie implementiere ich nun eine Schnittstelle, wenn bei der Berechnung zB Fehler erkannt wurden.
Wird die Berechnungen Klasse in der Form Klasse aufgerufen?

Augenblicklich laufen beide Klassen in der Form zusammen bzw wird eine Instanz jeweils erzeugt.

Thema: Close-Befehl wird nicht gefunden
Am im Forum: GUI: Windows-Forms

Hallo, ich schreibe an einem WindowsForms Projekt mit C#. Nun habe ich eine Klasse für Berechnungen gebaut und will Messageboxes verwenden können.

Es scheint zu klappen, nur das Close() macht mir noch Probleme.

Die Form heißt Form1.cs
in Calcualtion.cs soll nun ein MsgBox Dialog abgearbeitet werden:


            if (CircleDataTmp.asm == assembly.NONE)
            {              
                string msg = "Für mindestens einen Durchmesser wurde keine Bauteiltype gefunden.";
                string caption = "Hinweis";
                MessageBoxButtons button = MessageBoxButtons.OK;
                DialogResult result = MessageBox.Show(msg, caption, button);
                if (result == DialogResult.OK)
                {
                    ; // do your stuff
                    this.Close();
                }
            }

Das Problem ist bei this.Close();

wie aknn man das anpassen?
Fehler
Schweregrad Code Beschreibung Projekt Datei Zeile Unterdrückungszustand
Fehler CS1061 "Calculation" enthält keine Definition für "Close", und es konnte keine Close-Erweiterungsmethode gefunden werden, die ein erstes Argument vom Typ "Calculation" akzeptiert (möglicherweise fehlt eine using-Direktive oder ein Assemblyverweis). CSgeneratorWin D:\igm\dxf\Tool\CSgeneratorWin\CSgeneratorWin\CSgeneratorWin\Calculation.cs 490 Aktiv

Thema: Item in Arraylist an best. index durch neue Daten ersetzen
Am im Forum: Grundlagen von C#

Hallo,

ich habe einen neuen Wert (Struct) den ich an eine gewisse Stelle in einer Arraylist schreiben will. Die Daten die davor am index waren können überschrieben werden.
Wie geht ihr da am besten vor?

Thema: Nur zwei Eigenschaften eines Structs in Methode bearbeiten
Am im Forum: Grundlagen von C#

nun ja, es wird immer das Struct übergeben und auch benötigt. Bei jedem Aufruf. Also habe ich get/set richitg vertsanden, würde das nicht klappen

Thema: Nur zwei Eigenschaften eines Structs in Methode bearbeiten
Am im Forum: Grundlagen von C#

Hallo, ich würde gerne eine struct mit teilweise schon gültigen werten in einer Methode vervollständigen.
Gibt es etwas eleganteres als:



 struct S_Circle
        {
            public int idx;
            public double height;       // y  // CS on Pipe
            public double angle;        // x   // CS on Pipe
            public int diameterBottom;  // for collision prevention calculation
            public assembly asm;
            public int length;          // assembly length / heigth
            public int diameterTop;     // same like bottom if not flansch => different for flansch -> Cone
        }
...

S_Circle GetAssemblyDimensions(int diaBottom, S_IsoHeight isoHeight, S_Circle incompleteCircleData)


in der Methode will ich nur

public int length; // assembly length / heigth
public int diameterTop; // same like bottom if not flansch => different for flansch ->

bearbeiten.

Thema: String in enum konvertieren und Eigenschaft im Struct zuweisen
Am im Forum: Grundlagen von C#

Hallo, ich habe folgendes enum:


        enum assembly: int { Muffe = 1, Nippel, GewindeRohr, SiedeRohr, Stahlrohr, Winkel

dazu noch ein Struct


        struct S_Codierung
        {
            public int idx;
            public string ID;
            public int diameter;
            public int thickness; // 2 strings ->10^1, 1^0
            public assembly asm;
            public int subtype;
        }

nun würde ich gerne aus einem text den wert umwandeln und in das Struct schreiben:


         actCodierung.asm = Convert.ToInt32(subStr);

klappt leider nicht. Wie geht man hier vor?