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 Kaladial
Thema: Wie kann ich eine XML-Datei schreiben?
Am im Forum: Grundlagen von C#

ok habs selbst raus gefunden...


private void btnTest_Click(object sender, EventArgs e)
        {
            string batchnr = "2005368";
            string exp = "2023-07-26";
            string mad = "2020-07-26";
            string gtin = "06221032240262";
            string workorder_code = "242040_2005368_1";
            string[] sn = {"200536810100508", "200536810100509", "200536810100510"};
            string status = "Accepted";


            XElement xmlTree1 = new XElement("SERIALIZED_ITEM");


            for (int i = 0; i < sn.Length; i++)
            {
                xmlTree1.Add(new XElement("SERIALIZED_ITEM",
                new XAttribute("SERIAL", sn[i]),
                new XAttribute("Status", status)));
            }


            XNamespace xsiNs = "http://www.w3.org/2001/XMLSchema-instance";
            XDocument xDoc = new XDocument(
                new XDeclaration("1.0", "UTF-8", ""),
                new XElement("PRODUCTION_IMPORTATION",
                    new XAttribute(XNamespace.Xmlns + "xsi", xsiNs),
                    new XAttribute(xsiNs + "noNamespaceSchemaLocation", "Batch.xsd"),
                    new XElement("BATCH",
                        new XAttribute("BATCH_NUMBER", batchnr),
                        new XAttribute("MANUFACTURE_DATE", mad),
                        new XAttribute("EXPIRATION_DATE", exp),
                        new XElement("WORKORDER",
                            new XAttribute("GTIN", gtin),
                            new XAttribute("WORKORDER_CODE", workorder_code),
                            from el in xmlTree1.Elements()
                            select el
                        )
                    )
                )
            );

            xDoc.Save("text.xml");
        }

nur noch eine frage der verständnis halber:

warum muss ich

 XElement xmlTree1 = new XElement("SERIALIZED_ITEM");
dieses element erzeugen?
eigentlich adde ich doch das hinzu.

Thema: Wie kann ich eine XML-Datei schreiben?
Am im Forum: Grundlagen von C#

hi

ich muss eine forschleife um


xDoc.Root.Add(new XElement("SERIALIZED_ITEM",
                        new XAttribute("SERIAL", sn),
                        new XAttribute("Status", status)
            ));

setzen, da ich die elemente dynamisch aus einer DB in ein File schreiben will und das geht nicht innerhalb des 1. befehls. also hab ich mittels dem Add versucht dies hinzuzufügen. Mir war fast klar, das .Root das falsche ist, aber nur .Add hat nicht funktioniert.

Wie gebe ich also an, wenn ich den 1. Befehl so hab, das das, was in meiner For-Schleife an die richtige Position kommt, das hab ich bisher in den Dokus die ich gelesen hab, nicht gefunden.

Mfg Kala

Thema: Wie kann ich eine XML-Datei schreiben?
Am im Forum: Grundlagen von C#

Hi

ich muss eine XML datei erzeugen.

bisheriger code:


string batchnr = "2005368";
            string exp = "2023-07-26";
            string mad = "2020-07-26";
            string gtin = "06221032240262";
            string workorder_code = "242040_2005368_1";
            string sn = "200536810100508";
            string status = "Accepted";

            XNamespace xsiNs = "http://www.w3.org/2001/XMLSchema-instance";
            XDocument xDoc = new XDocument(
                   new XDeclaration("1.0", "UTF-8", "no"),
                   new XElement("PRODUCTION_IMPORTATION",
                       new XAttribute(XNamespace.Xmlns + "xsi", xsiNs),
                       new XAttribute(xsiNs + "noNamespaceSchemaLocation", "Batch.xsd"),
                       new XElement("BATCH",
                           new XAttribute("BATCH_NUMBER", batchnr),
                           new XAttribute("MANUFACTURE_DATE", mad),
                           new XAttribute("EXPIRATION_DATE", exp),
                           new XElement("WORKORDER",
                               new XAttribute("GTIN", gtin),
                               new XAttribute("WORKORDER_CODE", workorder_code)
                            )
                        )
            ));

            xDoc.Root.Add(new XElement("SERIALIZED_ITEM",
                        new XAttribute("SERIAL", sn),
                        new XAttribute("Status", status)
            ));

            xDoc.Root.Add(new XElement("SERIALIZED_ITEM",
                        new XAttribute("SERIAL", sn),
                        new XAttribute("Status", status)
            ));
            xDoc.Save("text.xml");

ergebnis:
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<PRODUCTION_IMPORTATION xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="Batch.xsd">
  <BATCH BATCH_NUMBER="2005368" MANUFACTURE_DATE="2020-07-26" EXPIRATION_DATE="2023-07-26">
    <WORKORDER GTIN="06221032240262" WORKORDER_CODE="242040_2005368_1" />
  </BATCH>
  <SERIALIZED_ITEM SERIAL="200536810100508" Status="Accepted" />
  <SERIALIZED_ITEM SERIAL="200536810100508" Status="Accepted" />
</PRODUCTION_IMPORTATION>


das ist leider nur fast richtig...

die
<SERIALIZED_ITEM SERIAL="200536810100508" Status="Accepted" />
<SERIALIZED_ITEM SERIAL="200536810100508" Status="Accepted" />

sollen innerhalb des WORKORDER stehen.
wie bekomm ich die also höher in die xml rein?

das eigentliche ziel ist das:

<?xml version="1.0" encoding="utf-8"?>
<PRODUCTION_IMPORTATION xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="Batch.xsd">
  <BATCH BATCH_NUMBER="2005368" MANUFACTURE_DATE="2020-07-26" EXPIRATION_DATE="2023-07-26">
    <WORKORDER GTIN="06221032240262" WORKORDER_CODE="242040_2005368_1">
          <SERIALIZED_ITEM SERIAL="200536810100508" Status="Accepted"/>
          <SERIALIZED_ITEM SERIAL="200536810100516" Status="Accepted"/>
    </WORKORDER>
  </BATCH>
</PRODUCTION_IMPORTATION>

mfg kala

Thema: Wie kann ich eine XML-Datei auslesen?
Am im Forum: Grundlagen von C#

Zitat von Kaladial
aber wie les ich das aus ?

ich hatte überlegt das mit der variante zu machen:


            XmlDocument xml = new XmlDocument();
            xml.LoadXml(xml_filemname); 

            XmlNodeList xnList = xml.SelectNodes("???");
            foreach (XmlNode xn in xnList)
            {
                string ppo = xn["ppo"].InnerText;
            }

aber was muss ich da bei ??? eingaben?
mal davon abgesehn das das auch nicht ging

xml.LoadXml(xml_filemname); schmeisst ne exception
{"Ungültige Daten auf Stammebene. Zeile 1, Position 1."}

da stehen doch wohl 2 fragen drin...

Thema: Wie kann ich eine XML-Datei auslesen?
Am im Forum: Grundlagen von C#

ich habs jetzt so:


try
            {
                xmlF = new XMLFile();

                string ppo = "";
                string lotNumber = "";
                string expirationDate = "";
                string productionDate = "";

                XmlDocument xml = new XmlDocument();
                xml.Load(xml_filemname);

                XmlNodeList xnList = xml.SelectNodes("/order/par");
                foreach (XmlNode xn in xnList)
                {
                    if (xn.OuterXml.Contains("ppo"))
                    {
                        ppo = xn.InnerText;
                    }
                    if (xn.OuterXml.Contains("lotNumber"))
                    {
                        lotNumber = xn.InnerText;
                    }
                    if (xn.OuterXml.Contains("expirationDate"))
                    {
                        expirationDate = xn.InnerText;
                    }
                    if (xn.OuterXml.Contains("productionDate"))
                    {
                        productionDate = xn.InnerText;
                    }
                }
                string gtin = "";
                string levelQty = "";
                List<string> sgtinSerial = new List<string>();

                xnList = xml.SelectNodes("/order/level/par");
                foreach (XmlNode xn in xnList)
                {
                    if (xn.OuterXml.Contains("gtin"))
                    {
                        gtin = xn.InnerText;
                    }
                    if (xn.OuterXml.Contains("levelQty"))
                    {
                        levelQty = xn.InnerText;
                    }
                    if (xn.OuterXml.Contains("sgtinSerial"))
                    {
                        //sgtinSerial = xn.InnerText;
                    }

                }

                xnList = xml.SelectNodes("/order/level/par/el");
                foreach (XmlNode xn in xnList)
                {
                    sgtinSerial.Add(xn.InnerText);
                }

                xmlF.ppo = ppo;
                xmlF.gtin = gtin;
                xmlF.lotNumber = lotNumber;
                xmlF.expirationDate = expirationDate;
                xmlF.productionDate = productionDate;
                xmlF.countSN = levelQty;
                xmlF.sgtinSerial = sgtinSerial;
            }
            catch (Exception ex)
            {
                string e = ex.Message;
            }

Thema: Wie kann ich eine XML-Datei auslesen?
Am im Forum: Grundlagen von C#

habs selber raus gefunden

sinnvoller wäre aber der hinweis, das zum einen Load nicht LoadXML benutzt werden muss
und 2. das die Pfade immer die 1. elemente in dem xml sind

also das ich /order/par
oder /order/level/par/el schreiben muss um an die inhalte ran zu kommen und das die als "name"
beschriebenen elemente überhaupt keine wirkung haben und man sie nur im outer text findet...

das wären sinnvolle hilfen gewesen

Thema: Wie kann ich eine XML-Datei auslesen?
Am im Forum: Grundlagen von C#

sorry aber die links bringen mir nicht wirklich was ...
kannst du mir an hand von nem kleinen beispiel das net mal erklären ?

ich schreib ja auch was ich bisher gemacht hab ...

Thema: Wie kann ich eine XML-Datei auslesen?
Am im Forum: Grundlagen von C#

aber wie les ich das aus ?

ich hatte überlegt das mit der variante zu machen:



            XmlDocument xml = new XmlDocument();
            xml.LoadXml(xml_filemname); 

            XmlNodeList xnList = xml.SelectNodes("???");
            foreach (XmlNode xn in xnList)
            {
                string ppo = xn["ppo"].InnerText;
            }

aber was muss ich da bei ??? eingaben?
mal davon abgesehn das das auch nicht ging

xml.LoadXml(xml_filemname); schmeisst ne exception
{"Ungültige Daten auf Stammebene. Zeile 1, Position 1."}

Thema: Wie kann ich eine XML-Datei auslesen?
Am im Forum: Grundlagen von C#

Hallo zusammen,

ich komm grad nicht weiter.

Ich habe eine XML bekommen die Inhalte enthält die ich so noch nicht kannte.

Wie kann ich so eine XML auslesen ?


<?xml version="1.0" encoding="UTF-8"?>
<order Version="1.0">
  <par name="ppo">245571_2007617_1</par>
  <par name="lotNumber">2007617</par>
  <par name="expirationDate">10/31/2023 00:00:00</par>
  <par name="productionDate">10/31/2020 00:00:00</par>
  <level name="B">
    <par name="gtin">06221032240842</par>
    <par name="sgtinSerial">
      <el>200761710100012</el>
      <el>200761710100019</el>
      <el>200761710100102</el>
      <el>200761710100184</el>
      <el>200761710100215</el>
      <el>200761710999957</el>
    </par>
    <par name="levelQty">11500</par>
  </level>
</order>

Ich versteh nicht was dieses par da spll.

Danke für die Hilfe

mfg Kala

Thema: C# Konsolenprogramm mit Int Rückgabewert starten
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

thx

Thema: C# Konsolenprogramm mit Int Rückgabewert starten
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo,

ich habe eine Frage:
ich möchte ein kleines Konsolenprogramm aus meiner WindowsForm Applikation starten.
Das ist noch nicht das Problem:

System.Diagnostics.Process.Start("test.exe");

Nun gibt diese test.exe aber einen Intwert zwischen -1 und 3 zurück und ich möchte entsprechend
darauf reagieren. Und genau das bekomm ich nicht hin.

wie kann man den Rückgabewert der test.exe abfragen?

Mfg Kaladial

Thema: SMS Weiterleitung per HTTP Aufruf
Am im Forum: Netzwerktechnologien

hat sich erledigt

variante 3 hat funktioniert man musste nur

System.Net.ServicePointManager.Expect100Continue = false;

hinzufügen und die syntax für den befehl richtig schreiben

string data = "text=" + sms + "&to=" + tel + "&username=" + user + "&password=" + passwort + "@sms";

mfg Kaladial

Thema: SMS Weiterleitung per HTTP Aufruf
Am im Forum: Netzwerktechnologien

Hallo,

ich möchte gern ein kleines Programm haben, das über eine URL einen Text an einen SMS Server
sendet, der diesen dann an ein Handy weiter leitet.

Der Aufruf muss wie folgt aussehen:

http://10.130.143.60/api.php?text=%&<tel_nummer>&username=<value>&password=<value>@sms_inhalt

Ich habe nun ein bisschen gegooglet und bin auf verschiedene Arten gestoßen um das zu erledigen.
Leider funktionieren die nicht.

Was genau mach ich falsch?


        private void test1(string tel, string sms)
        {
            WebRequest request = WebRequest.Create("http://10.130.143.60/api.php?text=%&" + tel + "&username=<value>&password=<value>@" + sms); //PW UND USERNAME ERSETZT
            request.Method = "POST";
            string postData = "This is a test that posts this string to a Web server.";
            byte[] byteArray = Encoding.UTF8.GetBytes(postData);
            request.ContentType = "application/x-www-form-urlencoded";
            request.ContentLength = byteArray.Length;
            Stream dataStream = request.GetRequestStream();
            dataStream.Write(byteArray, 0, byteArray.Length);
            dataStream.Close();
            WebResponse response = request.GetResponse();
            Console.WriteLine(((HttpWebResponse)response).StatusDescription);
            dataStream = response.GetResponseStream();
            StreamReader reader = new StreamReader(dataStream);
            string responseFromServer = reader.ReadToEnd();
            Console.WriteLine(responseFromServer);
            reader.Close();
            dataStream.Close();
            response.Close();
        }

Variante2:


private void test2(string tel, string sms)
        {
            string data = "username=<value>&password=<value>@" + sms;
            byte[] dataStream = Encoding.UTF8.GetBytes(data);
            string urlPath = "http://10.130.143.60/";
            string request = urlPath + "api.php?text=%&" + tel;
            WebRequest webRequest = WebRequest.Create(request);
            webRequest.Method = "POST";
            webRequest.ContentType = "application/x-www-form-urlencoded";
            webRequest.ContentLength = dataStream.Length;  
            Stream newStream = webRequest.GetRequestStream();
            // Send the data.
            newStream.Write(dataStream,0,dataStream.Length);
            newStream.Close();
            WebResponse webResponse = webRequest.GetResponse();
        }


Variante 3:


private void test3(string tel, string sms)
        {
            string data = "?text=%&" + tel + "&username=<value>&password=<value>@" + sms;

            MessageBox.Show(data);

            byte[] dataStream = Encoding.UTF8.GetBytes(data);
            string urlPath = "http://10.130.143.60/";
            string request = urlPath + "api.php";

            MessageBox.Show(request);

            WebRequest webRequest = WebRequest.Create(request);
            webRequest.Method = "POST";
            webRequest.ContentType = "application/x-www-form-urlencoded";
            webRequest.ContentLength = dataStream.Length;
            Stream newStream = webRequest.GetRequestStream();
            // Send the data.
            newStream.Write(dataStream, 0, dataStream.Length);
            newStream.Close();
            WebResponse webResponse = webRequest.GetResponse();
        }


thx für die Hilfe

Kaladial

Thema: XML einlesen mit mir unbekannter Codierung
Am im Forum: Datentechnologien

Wir sollen für unsere Serialisierungsanwendung von einem Anbieter Seriennummern importieren.
Und so sieht die Datei aus die ich da bekomme.

ich bin im moment einfach erstmal dran zu gucken was das eigentlich ist usw.

Thema: XML einlesen mit mir unbekannter Codierung
Am im Forum: Datentechnologien

Hi,

ich hab ein Problem.
Ich öchte eine XML einlesen.
Normal ist das kein Problem, aber hier in dem Fall ist die Codierung anders als ich sie kenne.
Kann mir da jemand helfen?

Mfg Kaladial


<?xml version="1.0" encoding="UTF-8"?>
<snx:SNXResponseMessage xmlns:cmn="urn:tl:mapper:sl:commontypes" xmlns:snx="urn:tl:mapper:sl:serial_number_exchange">
	<snx:ControlFileHeader>
		<cmn:FileSenderNumber>10450000</cmn:FileSenderNumber>
		<cmn:FileReceiverNumber>10450001</cmn:FileReceiverNumber>
		<cmn:FileControlNumber>19775-ojO</cmn:FileControlNumber>
		<cmn:FileDate>2017-02-06</cmn:FileDate>
		<cmn:FileTime>10:30:41</cmn:FileTime>
	</snx:ControlFileHeader>

	<snx:MessageBody>
		<cmn:RequestId>YDUFIFN3UF37Z4QD</cmn:RequestId>
		<cmn:NumberEncoding>AI(01)+AI(21)</cmn:NumberEncoding>
		<cmn:ObjectIdentifier>
			<cmn:GTIN-14>00368992301018</cmn:GTIN-14>
		</cmn:ObjectIdentifier>
		<cmn:Quantity>10</cmn:Quantity>
		<cmn:SerialNumberList isRandom="true">
			<cmn:SerialNumber>S98EA200XB3R</cmn:SerialNumber>
			<cmn:SerialNumber>9GBE0Y73AP1R</cmn:SerialNumber>
			<cmn:SerialNumber>YRXT1W0ZDHMZ</cmn:SerialNumber>
			<cmn:SerialNumber>40TYHRB6P0EB</cmn:SerialNumber>
			<cmn:SerialNumber>11KXZATTHC8A</cmn:SerialNumber>
			<cmn:SerialNumber>ZW6X6V2N6WEC</cmn:SerialNumber>
			<cmn:SerialNumber>WWGYN2F4969P</cmn:SerialNumber>
			<cmn:SerialNumber>ZK0M3TNTENYD</cmn:SerialNumber>
			<cmn:SerialNumber>HEABA53MAT5V</cmn:SerialNumber>
			<cmn:SerialNumber>V9VREZT9TXV0</cmn:SerialNumber>
		</cmn:SerialNumberList>
	</snx:MessageBody>
</snx:SNXResponseMessage>

Thema: Sprachumstellung per SetCulture funktioniert im Backgroundworker nicht
Am im Forum: GUI: Windows-Forms

Hallo,

ich habe eine frage zu backgroundworkern, ich weiß sie sind veraltet usw. brauch es trotzdem ;)

Also ich hab ein programm das in unterschiedlichen sprachen funktionieren soll.
das hab ich soweit hinbekommen. oberfläche hat 2 locations bekommen, default und en-US
ganzen dialoge sind übersetzt, alle fixen texte in die resourcen reingepackt und dort auch übersetzt.

nun starte ich das programm auf englisch:
oberfläche passt

- beim start des programm wird wird ein backgroundworker aufgerufen
dort wird verschiedene hardware initiallisiert und in einem log ausgegeben.

und hier ist mein problem: alles was in der funktion:
bgwInitialize_DoWork in diesem log ausgegeben wird ist deutsch.
alles was danach kommt also ab
bgwInitialize_RunWorkerCompleted ist wieder in englisch....

wie bekomme ich das nun hin das auch in dem dowork die
ausgaben auf englisch sind.

sowas hier: this.AppendWorkFlowText(Resources.StiftDatenprüfen + ": ", 0);

ich hab mir testausgaben gemacht.

alles inenrhalb des gbworkers ist deutsch, alles was davor oder danach passiert, ist englisch

wieso?

mfg Kaladial

Thema: Kann man vor FTP Übertragung Existens von Datei prüfen und ggf überschreiben?
Am im Forum: Rund um die Programmierung

hab funktion im inet gefunden thx

Thema: Kann man vor FTP Übertragung Existens von Datei prüfen und ggf überschreiben?
Am im Forum: Rund um die Programmierung

Hallo,

ich hab ein kleines Problem mit meinem FTP Upload.
Hier erstmal der Code:


        public void UploadFtpFile(string folderName, string fileName)
        {
            FtpWebRequest request;
            try
            {
                string user = MainWindow.conf.ftpUsername;
                string pass = MainWindow.conf.ftpPasswort;
                string absoluteFileName = Path.GetFileName(fileName);

                request = WebRequest.Create(new Uri(string.Format(@"ftp://{0}/{1}/{2}", MainWindow.conf.DruckerIpAsString, folderName, absoluteFileName))) as FtpWebRequest;
                request.Method = WebRequestMethods.Ftp.UploadFile;
                request.UseBinary = true;
                request.UsePassive = true;
                request.KeepAlive = true;
                request.Credentials = new NetworkCredential(user, pass);
                request.ConnectionGroupName = "group";

                using (FileStream fs = File.OpenRead(fileName))
                {
                    byte[] buffer = new byte[fs.Length];
                    fs.Read(buffer, 0, buffer.Length);
                    fs.Close();
                    Stream requestStream = request.GetRequestStream();
                    requestStream.Write(buffer, 0, buffer.Length);
                    requestStream.Flush();
                    requestStream.Close();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("FTP-Error: " + ex.Message);
            }
        }

Mit dieser Funktion uploade ich eine Datei auf meinen FTP Server.
Jetzt hab ich festgestellt, das wenn die Datei schon existiert (also überschrieben werden soll)
das er nur die existierende Datei aufmacht und den neuen Inhalt in die Datei schreibt.

Dies kann aber zu fehler führen, wenn die vorhergehende Datei mehr inhalt hatte als die neue.
Dann hab ich den neuen Inhalt und danach fragmente vom alten inhalt in der datei.

meine Frage dazu:
Kann man vor dem übertragen der Datei einfach überprüfen ob schon eine Datei mit dem namen vorhanden ist und wenn ja diese löschen?
Oder ist es möglich vor dem schreiben in die Datei diese komplett zu leeren?
Und wie ginge das?

Mfg Kaladial

Thema: Per WebBrowser drucken -> Wie lege ich den Zieldrucker fest?
Am im Forum: Rund um die Programmierung

ok thx

Thema: Per WebBrowser drucken -> Wie lege ich den Zieldrucker fest?
Am im Forum: Rund um die Programmierung

hm hab ich mir angeguckt aber nicht gefunden

Thema: Per WebBrowser drucken -> Wie lege ich den Zieldrucker fest?
Am im Forum: Rund um die Programmierung

Hallo

es gibt in der MSDN ja folgendes Beispiel um eine Datei auszudrücken:


private void PrintHelpPage()
{
    // Create a WebBrowser instance. 
    WebBrowser webBrowserForPrinting = new WebBrowser();

    // Add an event handler that prints the document after it loads.
    webBrowserForPrinting.DocumentCompleted +=
        new WebBrowserDocumentCompletedEventHandler(PrintDocument);

    // Set the Url property to load the document.
    webBrowserForPrinting.Url = new Uri(@"\\myshare\help.html");
}

private void PrintDocument(object sender,
    WebBrowserDocumentCompletedEventArgs e)
{
    // Print the document now that it is fully loaded.
    ((WebBrowser)sender).Print();

    // Dispose the WebBrowser now that the task is complete. 
    ((WebBrowser)sender).Dispose();
}

Dies habe ich getestet und es funktioniert auch.
Aber ich möchte nicht immer auf den Drucker der als "Standart-Drucker" gewählt wurde drucken,
sondern ich möchte vorher gern einen PrintDialog aufnamchen den Drucker festlegen und dann dort drucken.

Dialog kein Problem, aber wie das ich dem WebBrowser das er nun auf dem gewählten Drucker drucken soll?

Mfg Kaladial

Thema: SaveFile Dialog - Frage zum Überschreiben einer exist. Datei kommt erst nach Druck der "Alt"-Taste
Am im Forum: GUI: Windows-Forms


            if (this.PoRotateAngle == 0)
            {
                this.Size = new System.Drawing.Size(width, height);
                Image imageTmp = ResizeImage(global::LabelEditor.Properties.Resources.Dmax_0grad, width, height);
                Graphics g = e.Graphics;
                Point p = new Point(1,1);
                g.DrawImage(imageTmp, p);
            }

            if (this.PoRotateAngle == 90)
            {
                this.Size = new System.Drawing.Size(width, height);
                Image imageTmp = ResizeImage(global::LabelEditor.Properties.Resources.Dmax_90grad, width, height);
                Graphics g = e.Graphics;
                Point p = new Point(1, 1);
                g.DrawImage(imageTmp, p);
            }

            if (this.PoRotateAngle == 180)
            {
                this.Size = new System.Drawing.Size(width, height);
                Image imageTmp = ResizeImage(global::LabelEditor.Properties.Resources.Dmax_180grad, width, height);
                Graphics g = e.Graphics;
                Point p = new Point(1, 1);
                g.DrawImage(imageTmp, p);
            }

            if (this.PoRotateAngle == 270)
            {
                this.Size = new System.Drawing.Size(width, height);
                Image imageTmp = ResizeImage(global::LabelEditor.Properties.Resources.Dmax_270grad, width, height);
                Graphics g = e.Graphics;
                Point p = new Point(1, 1);
                g.DrawImage(imageTmp, p);
            }        

so damit gehts.
und damit ist mein Problem auch gelöst.
Sowohl Alt Taste als auch Tooltip

thx

Thema: SaveFile Dialog - Frage zum Überschreiben einer exist. Datei kommt erst nach Druck der "Alt"-Taste
Am im Forum: GUI: Windows-Forms

ok ich habs so erstmal eingebaut und es geht.
aber ich hab noch ein kleines problem mit meinen Datamatrix - Objekt.
Hier wird in meinem Code in der On Paint folgendes gemacht:


            if (this.PoRotateAngle == 0)
            {
                this.Size = new System.Drawing.Size(width, height);
                this.Image = ResizeImage(global::LabelEditor.Properties.Resources.Dmax_0grad, width, height);
                base.OnPaint(e);
            }

            if (this.PoRotateAngle == 90)
            {
                this.Size = new System.Drawing.Size(width, height);
                this.Image = ResizeImage(global::LabelEditor.Properties.Resources.Dmax_90grad, width, height);
                //base.OnPaint(e);
            }

            if (this.PoRotateAngle == 180)
            {
                this.Size = new System.Drawing.Size(width, height);
                this.Image = ResizeImage(global::LabelEditor.Properties.Resources.Dmax_180grad, width, height);
                base.OnPaint(e);
            }

            if (this.PoRotateAngle == 270)
            {
                this.Size = new System.Drawing.Size(width, height);
                this.Image = ResizeImage(global::LabelEditor.Properties.Resources.Dmax_270grad, width, height);
                //base.OnPaint(e);
            }        

Das Problem dabei: wenn ich da das OnPaint weg lasse, wird das Image nicht mehr angezeigt.

@pille: ja ist es :) davon bin ich auch ausgegangen, nur funktioniert das halt bei den DMAX objekten noch nicht

Thema: SaveFile Dialog - Frage zum Überschreiben einer exist. Datei kommt erst nach Druck der "Alt"-Taste
Am im Forum: GUI: Windows-Forms

heißt also da muss es drin bleiben?

Thema: SaveFile Dialog - Frage zum Überschreiben einer exist. Datei kommt erst nach Druck der "Alt"-Taste
Am im Forum: GUI: Windows-Forms

siehste die info mit dem base.OnPaint hat aber gefehlt :)

kannst du mir erklären warum ich bei 0 grad das base.OnPaint drin lassen muss?
Wenn ich das raus nehme wird kein Text mehr angezeigt.

Thema: SaveFile Dialog - Frage zum Überschreiben einer exist. Datei kommt erst nach Druck der "Alt"-Taste
Am im Forum: GUI: Windows-Forms

@pille: an deiner antwort sieht man das du das projekt nicht einmal ausgeführt hast oder?
ist nicht böse gemeint aber: ich schreib doch nicht quellcode in mein programm weil ich da grad lust zu hab ...
lass doch einfach mal das this.Text = ""; weg (auskommentieren) und führ die software aus.
wenn du mir dann noch erklärst wie ich den dann auftretenden text-kauderwelsch weg bekomme,
dann wäre mir geholfen.

und auch die geschichte mit den parametern alles schön und gut funktioniert aber zum einen und wenn ich es weg nehme ändert sich trotzdem nix an dem problem. und der textalign war mal dynamsch ist aber derzeit fix. hatte damit nur rumgespielt.

Thema: Backgroundworder vs. async/await
Am im Forum: Grundlagen von C#

@pille: genau :)

also ich hab mal vor langer langer zeit gelernt das man n bissi strukturiert arbeitet
und da gehört es halt für mich dazu z.b. SQL Code nicht mal dort n stück stehn hat und an ne ganz anderen stelle den rest... das wird unleserlich. ich will wenn ich meinen quellcode angucke halt
auch noch nachvollziehen was ich mache. und in den jahren hab ich mir da so einiges angewöhnt was andere vielleicht quatsch finden, ich damit aber gut klar komme. und das ist ja nun mal das was zählt...
und es führen nun mal viele wege nach rom. und ob die nu neu sind oder alt is dabei nicht unbedingt wichtig, solange man ankommt. code muss funktionell sein. für was anderes hat man selten zeit.
und ja bei c# kenn ich mich noch nicht so aus, ich hab aber trotzdem schon mehrer programme geschrieben die alle das machen was sie sollen.

so und nu ist gut. ich werd das mal mit dem asynch und await ausprobieren und wenns mir gefällt nehm ich das wenn nicht bleib ich bei dem was für mich funktioniert und das sind nun mal die bgws :)

Thema: SaveFile Dialog - Frage zum Überschreiben einer exist. Datei kommt erst nach Druck der "Alt"-Taste
Am im Forum: GUI: Windows-Forms

Moin

so ich hab die funktionalität mal in nen kleines Test Projekt ausgelagert.

Funktion:

Mit Button erstellen wird ein Label auf einem Panel erstellt.
Der Button Drehen dreht diese Objekte um 90 Grad.
Mit der Linken Maustaste auf die Objekte: Kann man die Objekte frei verschieben

Das Problem:
Die beiden Buttons Drehen und Erstellen haben Tooltips.
Diese funktionieren nur wenn die Objekte bei 0 Grad sind.
Sobald sie bei 90 / 180 / 270 Grad sind funktionieren die Tooltips nicht mehr.

Kann mir da jemand erklren wieso?

Mfg Kala

Thema: Backgroundworder vs. async/await
Am im Forum: Grundlagen von C#

naja wenn ich ne select abfragen an ne db schicke bekomm ich (wenns nicht weiter eingeschränkt wird) immer mehrere ergebnisse.
natürlich geh ich die in ner whileschleife durch.
und diese, z.b. string rückgaben, add ich dann in ne liste die meine funktion zurück gibt...
daher ne stringliste. ich will ja eben so wenig wir möglich verschiedene datentypen durch mein ganzes programm schleifen, also brech ich das auf das kleinste gemeinsame runter und übergeb nicht das ganze result quer durch mein programm.

Thema: Backgroundworder vs. async/await
Am im Forum: Grundlagen von C#

Hmmm das eine datenbank keine strings kann...
naja es sind vchars die aber im eigentlichem sinne strings sind.