Laden...

Forenbeiträge von jodahush Ingesamt 23 Beiträge

29.01.2022 - 10:51 Uhr

Ich möchte einfach ein Programm schreiben, in dem ich u.a. eine Mail verschicken kann.
Dabei ist es mir egal ob der Standard Mail client aufgerufen wird oder eine andere Lösung funktioniert.
Es sollte halt einigermaßen einfach umsetzbar sein.
Durch die geänderten Sicherheitsbestimmungen bei Google scheint es mit GMail in Verbindung mit SMTP auf C# nicht mit einem überschaubaren Aufwand möglich zu sein ein mail zu senden.

Ich weiß was VBA ist und habe das ganze Programm in VB realisiert und kann so eine Arbeit die normalerweise 30min dauert locker in 5 min erledigen.

02.11.2021 - 16:10 Uhr

Also das krieg ich nicht auf die Reihe. Hab noch keine Beschreibung gefunden wie ich den Token bekomme und in meiner App verifiziere und nutze.
Und wenn es so einfach wäre in 2021 ein gmail in einer app zu verschicken, hätte man sicher ein komplettes aktuelles Tutorial gefunden.
Ich hatte ja gefragt wie ich ein mail verschicken kann, am besten mit dem standrd mail client. Leider mit Attachment.

Stattdessen hatte ich das versucht:


  System.Diagnostics.Process.Start("mailto:hush4@web.de?subject=test&body=teesttext");

Klappt, aber leider nicht mit attachment.

oder So habe ich es in VB gemacht:


In VB habe ich ein anderes Beispiel, das funktioniert:
'StörungsMenge
'** Vorgaben definieren
Set OutlookApp = CreateObject("Outlook.Application")
Set strEmail = OutlookApp.CreateItem(0)

'** PDF erzeugen
'ActiveWorkbook.
ActiveWorkbook.Sheets(1).ExportAsFixedFormat Type:=xlTypePDF, fileName:= _
  PathFile, Quality:=xlQualityStandard _
  , IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish _
  :=False
  

'** E-Mail versenden
strPDF = PathFile
With strEmail
  .To = "GetGruppe" '"name@domain.tld"
  .Subject = fileName + " als Anlage" 'Betreffzeile
  .body = TextBlock
  .Attachments.Add PathFile
  .Display
  '.Send 'Damit wir die E-Mail sofort versendet
 
End With

01.11.2021 - 09:19 Uhr

Das Problem ist wohl die Authentifizierung unter gmail.


            using (var client = new SmtpClient())
            {
                //client.Connect("smtp.gmail.com", 465, SecureSocketOptions.SslOnConnect);
                client.Connect("smtp.gmail.com", 587, SecureSocketOptions.StartTlsWhenAvailable);

                client.Authenticate("xxx", "ccc");

                client.Send(message);

Klappt auch nicht: Application specific password required

Bei Google steht:
Postausgangsserver (SMTP)
smtp.gmail.com

SSL erforderlich: Ja
TLS erforderlich: Ja (falls verfügbar)
Authentifizierung erforderlich: Ja
Port für TLS/STARTTLS: 587
Wenn Sie Gmail über ein Konto in Ihrem Unternehmen oder Ihrer Bildungseinrichtung nutzen, fragen Sie Ihren Administrator nach der korrekten SMTP-Konfiguration.
Ich habe beide Varianten versucht, aber es haut nicht hin. Auch in meinem Gmail account habe ich imap aktiviert.

01.11.2021 - 09:01 Uhr

danke. So wie es aussieht muss ich Nuget für jede solution extra installieren?

Wie auch immer. Folgendes habe ich gemacht:


using MailKit;
using MimeKit;
using MailKit.Net.Smtp;
using MailKit.Security;

private void button1_Click(object sender, EventArgs e)
        {
            var message = new MimeMessage();
            message.From.Add(new MailboxAddress("Joey", "xxx@gmail.com"));
            message.To.Add(new MailboxAddress("Alice", "xxx@yahoo.com"));
            message.Subject = "How you doin?";

            message.Body = new TextPart("plain")
            {
                Text = @"Hey Alice,

                    What are you up to this weekend? Monica is throwing one of her parties on
                    Saturday and I was hoping you could make it.

                    Will you be my +1?

                    -- Joey
"
            };

            using (var client = new SmtpClient())
            {
                client.Connect("smtp.gmail.com", 465, SecureSocketOptions.SslOnConnect);

                client.Authenticate("xxx", "xxx");

                client.Send(message);



                client.Disconnect(true);
        }

Das compliliert, aber beim SEnden habe ich ein Problem mit Username Password

31.10.2021 - 22:00 Uhr

Ich dachte das diese Funktion mit ein paar Zeilen Code umsetzbar wäre, aber weit gefehlt. Ich meine es ist ja schon schwer gmail in Outlook zu konfigurrieren aber mit SMTP in C# kriege ich es nicht hin. Hier mein Versuch mit SMTP


         try
            {
                MailMessage mail = new MailMessage();
                SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com");

                mail.From = new MailAddress("myUserName@gmail.com");
                mail.To.Add("myDestination@yahoo.com");
                mail.Subject = "Test Mail";
                mail.Body = "This is for testing SMTP mail from GMAIL";

                SmtpServer.Port = 465;// 587;
                SmtpServer.EnableSsl = true;
                SmtpServer.Credentials = new System.Net.NetworkCredential("myUserName", "myPasword");
                SmtpServer.EnableSsl = true;

                SmtpServer.Send(mail);
                MessageBox.Show("mail Send");
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }

Irgendwas scheint hier mit den notwendigen Security features für gmail noch zu fehlen. Diese sind: Gmail SMTP server address: smtp.gmail.com
Gmail SMTP username: Your Gmail address (for example, example@gmail.com)
Gmail SMTP password: Your Gmail password
Gmail SMTP port (TLS): 587
Gmail SMTP port (SSL): 465
Gmail SMTP TLS/SSL required: Yes

Dann habe ich von dem MimeKit gelesen. Ok nuget nie probiert aber irgendwie installiert. Using using MailKit; using MimeKit; genutzt und dann


        private void button2_Click(object sender, EventArgs e)
        {//https://www.mimekit.net/docs/html/Creating-Messages.htm
            var message = new MimeMessage();
            message.From.Add(new MailboxAddress("Herm", "jodahush@gmail.com"));
            message.To.Add(new MailboxAddress("mann", "jodahush@yahoo.com"));
            message.Subject = "How you doin?";

            message.Body = new TextPart("plain")
            {
                Text = @"Hey Alice,

                What are you up to this weekend? Monica is throwing one of her parties on
                Saturday and I was hoping you could make it.

                Will you be my +1?

                -- Joey
                "
            };

            
        }


da tut sich garnix, es fehlt ja auch irgend ein Befehl zum senden wie z.B. message.send(); aber das gibt es nicht.

Kann man nicht einfach den Standard mail client über c# ansprechen und diesem ein vorausgefülltes mail aus den Rippen leiern? Am liebsten die Windows Mail App. Wie auch immer, mal eben schnell ne mail schicken is wohl eher nicht möglich. Gibt es kein Rezept für Einsteiger?

19.10.2021 - 12:25 Uhr

Kaum zu Glauben, ich habe es hinbekommen.
Vielen Dank für deine Unterstützung.

Hier meine Lösung
So fülle ich den Chart:


            //DS is the total Dirsize
            for (int i = 0; i < DirNames.Count; i++)
            {

                try
                {
                    // if (DirSz[i]>0)
                    {//MaxV
                        int PerSz = 0;
                        if (DirSz[i] > 0)
                        {
                            long PercSize = (DirSz[i] * 100 / (MaxV));
                            PerSz = Convert.ToInt32(PercSize);
                        }
                        //index name prozentwert
                        AddLVItem(i, DirNames[i], PerSz, DirSz[i] / 1024 / 1024);

                        //FillChart
                        //Loop through DirNames and DirSizes
                        MySeries.Points.Add(DirSz[i]);
                        MySeries.Points[i].LegendText = DirNames[i];

                    }
                }
                catch (Exception e)
                {
                   
                    MessageBox.Show(e.ToString());                        //throw;
                }
            }

Und so zeige ich die Pie Legendentext an wenn ich auf das Chart klicke.


 private void chart1_MouseClick(object sender, MouseEventArgs e)
        {
            int clkdGraphPoint;
            string clkdGraphSeries = null;


            System.Windows.Forms.DataVisualization.Charting.HitTestResult result = chart1.HitTest(e.X, e.Y);
            try
            {

                clkdGraphPoint = result.PointIndex;
                if (clkdGraphPoint >= 0)
                {
                    clkdGraphSeries = result.Series.Points[clkdGraphPoint].LegendText;
                    StatusLabel1.Text = (clkdGraphSeries);
                    textBox1.Text = Path.GetFullPath(LastRoot + @"\" + clkdGraphSeries);
                }
                else
                {
                    StatusLabel1.Text = ("nix da!");
                }

            }
            catch (Exception)
            {

                StatusLabel1.Text = ("No valid area on chart");
                //throw;
            }
        }

18.10.2021 - 16:49 Uhr

Danke.
Der Name ist blöd, hab ich bei vielen CopyPaste Aktionen irgendwo hergenommen. Da kommt jetzt was anderes hin.

Also so:
name der serie
Series MySeries = this.chart1.Series.Add(textBox1.Text);
MySeries.ChartType= SeriesChartType.Pie;
in der Schleife
//FillChart
//Loop through DirNames and DirSizes
MySeries.Points.Add(DirSz_);
MySeries.Name = DirNames_;
**
Ergebnis schon besser, allerdings zeigt die Legende nur points an**
Entsprechend klappt auch der MausClick nicht mehr richtig.
Scheint das mit dem name nicht richtig zu sein: MySeries.Name = DirNames_;

18.10.2021 - 13:56 Uhr

Danke schön.
Tja, die Northwind database hätte ich auch gerne genutzt/das Bsp. nachgebaut. Scheint aber auch nicht zu gehen. Man kann jetzt nur die Access DB nutzen, oder?

Gut, zur Frage: Wie kann ich das BarChart als Pie darstellen.

Als Balken Chart klappt das ganze, auch soweit, dass ich interaktiv auf die Balken klicken kann und das Label sehe. Allerdings scheitere ich beim Pie (unabhängig davon sehe ich die Darstellung des Pie mittlerweile eher kritisch, weil die Anzahl der Items oft zu hoch ist. Trotzdem würde ich es gerne verstehen.).


                        Series series = this.chart1.Series.Add(DirNames[i]);
                        chart1.Series[i].ChartType = SeriesChartType.Pie;
                        series.Points.Add(DirSz[i]);

Bei diesem Beispiel führt die zweite Zeile dazu dass ich nur ein Collection Element sehe (also einen Vollkreis, kein PieChart). Es sollten aber mehrere sein. Wie gesagt, als Balkenchart klappt das ganze (ohne Zeile 2)

Die Series_ verstehe ich nicht. Series Serie ist eine neue Serie, zu der ich Elemente hinzufüge. Ich kann die series aber nicht als Pie definieren, sondern nur die addierten series** Elemente.
Nach meiner Denke würde man mit chart1.Series auch den Typ bestimmen können. Ist aber nicht möglich. Man kann nur die Collection hinzufügen.
Der Collection (Series_) kann man einen Typ verpassen - was für mich unlogisch erscheint, da ich am Ende ein Chart erzeugen könnte bei dem jede Collection ein eigener Typ ist, wobei das zu einem Laufzeit Fehler führt.

14.10.2021 - 14:14 Uhr

Ich habe mich mit dem Chart rumgeschlagen und dachte ich hätte die Lösung. (Zumindest für den Chart, nicht für den Wait Cursor)
Tatsächlich klappte sie in einem Projekt mit Balkenchart.
siehe hier:


        private void chart1_MouseDoubleClick(object sender, MouseEventArgs e)
        {
            int clkdGraphPoint;
            string clkdGraphSeries = null;

            System.Windows.Forms.DataVisualization.Charting.HitTestResult result = chart1.HitTest(e.X, e.Y);
            try
            {

                clkdGraphPoint = result.PointIndex;
                if (clkdGraphPoint > 0)
                {
                    clkdGraphSeries = result.Series.Name;
                    StatusLabel1.Text = (clkdGraphSeries);
                }
                else
                {
                    StatusLabel1.Text = ("nix da!");
                }

            }
            catch (Exception)
            {
                
                StatusLabel1.Text=( "No valid area on chart");
                //throw;
            }
        }

nun habe ich hier aber ein Pie Chart und das ganze funzt nicht mehr

Vielleicht liegt es dran, wie ich das Chart gefüllt habe - selbst wenn ich ein Pie wähle wird es wieder ein BarChart


     public void BarExample()
        {
            this.chart1.Series.Clear();

            // Data arrays
            string[] seriesArray = { "Cat", "Dog", "Bird", "Monkey" };
            int[] pointsArray = { 2, 1, 7, 5 };

            // Set palette
            this.chart1.Palette = ChartColorPalette.EarthTones;

            // Set title
            this.chart1.Titles.Add("Animals");

            // Add series.
            for (int i = 0; i < seriesArray.Length; i++)
            {
                Series series = this.chart1.Series.Add(seriesArray[i]);
                series.Points.Add(pointsArray[i]);
            }
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            BarExample();
        }

Möglicherweise muss ich die Chartelemente anders in das Chart reinschreiben. Ich habe es so gemacht:


  chart1.Series["DirSizes"].Points.AddXY(DirNames[i], DirSz[i]);
                    }

13.10.2021 - 16:23 Uhr

ja, was soll ich sagen. Ich habe immer das falsche Template ausgewählt 😦
Danke dafür. Jetzt geht es

13.10.2021 - 15:54 Uhr

upps, richtig: .NET 3.1 (3.7 gibts nicht) und .NET 5 wählen
Den SDK .net 4.7 habe ich heruntergeladen und installiert.

Aber was kann ich tun um 4.7 einzubinden?

13.10.2021 - 15:28 Uhr

Hallo zusammen,

ich geh im Moment einen Schritt vor und zwei zurück.
Ich habe auf meinem privaten Rechner VC2019 Comunity.
Wenn ich ein neues Projekt starte kann ich zwischen .net 3.7 und .net 5 wählen.
Das ist blöd, da nicht alle Steuerelemente von 4.7 verfügbar sind (ich wollte mit der Chart Komponente herumexperimentieren die aber bei .net 5 nicht da ist)

Im VS Installer habe ich die .net Entwicklungsumgebung mit 4.7 angekreuzt. Dennoch kann ich sie nicht auswählen.

Wenn ich in einem neuen Projekt die Program.cs ändere - von .net 5 auf 4.7, meckert die IDE.
In meinem vorigen Projekt (vom Arbeitsrechner) habe ich .net 4.7.2 genutzt und kann das auch auf dem privaten Rechner starten. D.h. irgendwo im Projekt kann man die config ändern.

Im Netz finde ich nichts passendes. Was kann ich tun?

12.10.2021 - 15:08 Uhr

Ok, ich habe folgendes versucht:
Application.UseWaitCursor = true;
System.Windows.Forms.Cursor.Current = Cursors.WaitCursor;
und vice versa

Das ganze auf einer einfachen Form geklebt, mit zwei Buttons, funktioniert.
In der App habe ich es noch nicht hinbekommen.
Ich dachte mit
Application.UseWaitCursor = true;
sagt man der App - sie darf den Wait Cursor nutzen den ich dann mit Current ... ein und ausschalte.

Aber wenn ich Application.UseWaitCursor = true; in die Form Load setze sieht man die ganze zeit den Ladecursor.
In der Methode klappt es - nur manchmal! Komisch.
Ich probiere noch weiter rum.

12.10.2021 - 11:30 Uhr

Vielen Dank.
Das ist schon sehr verzwickt.
Zuerst noch zum Cursor.
Warum macht MS die gleiche Klasse in verschiedene Module? Aber sei es drum.
Ich konnte deinen Code nutzen, aber der Cursor veränderte sich nicht.


using System;
using System.Collections.Generic;
using System.IO;
using System.Windows.Forms;
using WinFormsCursor = System.Windows.Forms.Cursor;  //ich nehme an hier ist das using richtig
//using System.Windows.Media;
using System.Windows.Forms.DataVisualization.Charting;

//using System.Runtime.InteropServices;


namespace DirSize
{
    public partial class Form1 : Form
    {
        private static readonly HistoList histoList = new HistoList();
        private readonly HistoList Hi = histoList;
        private string myLastRoot;
        // private ListViewEx ListView1;

        public Form1()
        {
            InitializeComponent();


            LastRoot = "C:\\" + Path.DirectorySeparatorChar;
            textBox1.Text = Path.GetFullPath(LastRoot);
            Hi.AddToHist(LastRoot);//initial dir
        }
        private void ScanDirs(string dr)
        {
            
            {
                //Hier sollen die Directories u. Größe des Stammverzeichnisses rein

                var DirNames = new List<string>();
                var DirSz = new List<long>();
                // Set cursor as hourglass
                //Das liegt daran, daß in DataVisualization.Charting selber wieder eine Cursor-Klasse definiert ist.
                ////Du mußt also entweder jeweils den vollen Namensbereich beim Cursor angeben oder aber alternativ einen Aliasnamen vergeben, z.B.
                WinFormsCursor.Current = Cursors.WaitCursor; //beides compiliert funktioniert, aber der Cursor hat sich nicht verändert. Blieb auf Pfeil
                System.Windows.Forms.Cursor.Current = Cursors.WaitCursor; //zweite Methode
                //Cursor.Current = Cursors.WaitCursor;
                //if start scan, textbox entree will be the next root
                //History Liste
                if (Directory.Exists(dr))

11.10.2021 - 10:18 Uhr

das ist ja echt tricky.
Gerade experiementiere ich mit HitTest und versuche das:


 public static DataPoint GetPointAtMouse(Chart c, MouseEventArgs e)
 {
     var result = c.HitTest(e.X, e.Y);
     // If the mouse if over a data point
     if (result.ChartElementType == ChartElementType.DataPoint)
     {
         // Find selected data point
         var point = c.Series[0].Points[result.PointIndex];
         return point;
     }
     return null;
 }

Dazu brauche ich wohl :
using System.Windows.Forms.DataVisualization.Charting;

Sobald ich diese using direktive dazu setze, funktioniert Cursor.Current = Cursors.WaitCursor; nicht mehr. Wie kann denn sowas sein?

09.10.2021 - 11:53 Uhr

Ich nutze einen PieChart in c#
Nun möchte ich bei DoppelClick auf ein Pie eine Referenz auf die Serie erhalten.

Ich habe folgenden Code gefunden:


        private void Chart1_Click(object sender, EventArgs e)
        {

            string[] pointData = e.PostBackValue.Split(',');
            // Add click event code here

        }

        private void Form1_Load(object sender, EventArgs e)
        {
            foreach (DataPoint dp in this.Chart1.Series["YourSeriesName"].Points)
            {
                dp.PostBackValue = "#VALX,#VALY";
            }
        }

Leider klappt es nicht, weil DatePoint wohl nicht verfügbar ist.

Dann wollte ich System.Web.UI. zur using Liste hinzufügen, aber es ist nicht vorhanden.
Dann über Projekt / Verweis hinzufügen / Com : System.web; oder System.UI gesucht um ihn zuzufügen, aber auch dort nicht gefunden.

Wie macht man es denn richtig?

06.10.2021 - 13:25 Uhr

yep, danke an euch.
Zur IDE, soll man später alle Komponenten zur Laufzeit erstellen? Wäre mir zu aufwändig. Für die Oberfläche und zur Wiederbenutzung sind doch genau solche Sachen, wie auch die Code Snippets z.B. prop Tab Tab.

Aber prima, es läuft jetzt.
Und ja, ich habe schon die ersten Backups gestreut.
Blöd ist dabei nur, das man Code anscheinend nicht per mail verschicken kann weil da ein Virus drin sein könnte. Daher Backup in oneDrive

06.10.2021 - 10:42 Uhr

Also der Versuch eine ListViewEx in die Komponenten Toolbox einzubinden.

Neues Projekt
Vorhandenes Element hinzufügen
ListViewEx auswählen
ListViewEx.cs erscheint dann im ProjektmappenExplorer

In der Toolbox steht .... Nichts!
Dann habe ich folgenden Code in Form1.cs eingegeben und einmal gestartet:


using System.Windows.Forms;
using ListViewEmbeddedControls;

namespace TestLVex
{
    public partial class Form1 : Form
    {
        private ListViewEx ListView1;

        public Form1()
        {
            InitializeComponent();
        }

Dann plötzlich erscheint wie durch ein Wunder in meinem Test Program TestLVex in der Toolbox die ListViewEx komponente, die ich dann wie jede andere Komponente auf die Form ziehen kann.

Deklaration Listbox1 = new ListBoxEx oder sowas Fehlanzeige.
Irgendwie macht VS etwas intelligentes im Hintergrund, um die Komponente visual sichtbar zu machen, dass ich manuell nicht erkennen kann.

Über diesen Weg bekomme ich mein Programm wieder ans laufen, aber irgendwie muss ich wohl die "using" Geschichte noch besser verstehen.

06.10.2021 - 09:46 Uhr

Ich muss noch einen Schritt ausholen. Das reine Code klappt einigermaßen, aber die VS Umgebung ist für mich halt noch sehr kryptisch, zumal ich nur gelegentlich Programmiere.

Hintergrund:
Beim Rechnerupdate habe ich den größten Teil meiner C# Programme (repos auf c:\ 😭 )verloren.
DirSize war aber ziemlich nützlich, so wollte ich es nochmal anpacken.
Zum Glück habe ich noch ein Zip Archiv mit dem Code von DirSize2 (so nenne ich das Ding) gefunden.

Unzipen, VS öffnen, Starten => Dann hat VS den Namespace durch einen Platzhalter ersetzt. Ich habe versucht alle Platzhalter durch DirSize2 zu ersetzen aber irgendwann steckte ich dann auch bei zwei Fehlern in der Ressourcen Datei fest. Hier kann ich die Form1 nicht aufrufen, ohne Komponenten zu verlieren 😦 Daher finde ich auch die Deklaration der ListViewEx nicht. Dein Hinweis scheint aber den Punkt zu adressieren.

Anderer Versuch alles neu machen. Methode für Methode per copy paste einsetzen. Auch dort blieb ich bei der ListViewEx Komponente hängen.

Eigentlich sollte ich jetzt zuerst mal probieren, in eine blanke Form, ListViewEx als Child von ListView zu installieren. Wie auch immer. Ich weiß nicht mehr wie ich es damals hinbekommen habe, daher muss ich nochmal von vorne einsteigen.

Ich habe daher den Code (als zip) angehängt. Da ist alles drin. Das Programm und die Komponente. Vielleicht gibt es bessere Wege hier zum Ziel zu kommen.

05.10.2021 - 19:55 Uhr

Okay danke, das werde ich morgen versuchen heute bin ich nicht mehr an dem Rechner.
Ich kann nicht die ganze Datei hochladen

05.10.2021 - 13:47 Uhr

Danke,
zumindest weiß ich dann woran es nicht liegt.

Hintergrund:
Es gab wohl eine Komponente auf Basis Listview, mit der man Schaltelemente (in meinem Fall hatte ich eine Progressbar genutzt) einbinden konnte. Den Code meines Programms habe ich noch am anderen Rechner gefunden, aber eben nicht das ganze Projekt. Jetzt habe Methode für Methode in ein neues leeres Projekt gesetzt.

Der Code für das Listview dazu war namespace ListViewEmbeddedControls. Dort findet man auch die relevante methode.

Ich denke ich muss ich ListViewEx als eigenes KontrollElement registrieren?

05.10.2021 - 12:29 Uhr

Hallo zusammen,

ich habe seit langem wieder mal ein C# Projekt gestartet und hänge an den Basics.
Zuerst möchte ich nach Rechnertausch ein altes Programm von mir ("DirSize3") ans Laufen bekommen. Der Code unten ist richtig (lief ja schon mal) aber die aufgerufene Methode wird nicht gefunden.

In dem Fall geht es darum, einen namespace aus einer externen Datei zu nutzen.
Ich habe den Code für einen Listview in das man Controls einsetzen kann.
Die Datei heißt "ListViewEx.cs".

Zuerst mal muss sie in das Projekt. Habe das mit: (rechtsklick / hinzufügen / vorhandenes Element) gemacht. (Richtig? Geht es auch besser?)
In der Datei ist der Namespace "ListViewEmbeddedControls".

Wo muss ich jetzt welche using direktive reinschreiben, damit das Program im namespace DirSize3 den Inhalt von ListViewEx auch nutzt?
Bei Eingabe von using ListV.... gibt mir Intellisense schon den Namespace ListViewEmbeddedControls zurück.
Ich dachte soweit wäre es richtig, aber am Ende klappt es trotzdem nicht.

A


        private void AddLVItem(int key, string name, int value)
        {
            ListViewItem lvi = new ListViewItem();
            ProgressBar pb = new ProgressBar();

            lvi.SubItems[0].Text = name;
            lvi.SubItems.Add(value.ToString());

            listView1.Items.Add(lvi);
            pb.Value = value;

            listView1.AddEmbeddedControl(pb, 2, key);

        }

ber die Methode "AddEmbeddedControl" in ListViewEmbeddedControls ruft er nicht auf.

Schweregrad Code Beschreibung Projekt Datei Zeile Unterdrückungszustand
Fehler CS1061 "ListView" enthält keine Definition für "AddEmbeddedControl", und es konnte keine zugängliche AddEmbeddedControl-Erweiterungsmethode gefunden werden, die ein erstes Argument vom Typ "ListView" akzeptiert (möglicherweise fehlt eine using-Direktive oder ein Assemblyverweis). DirSize3 C:\Users\abcd\source\repos\DirSize3\Form1.cs 210 Aktiv