Laden...

Forenbeiträge von PeterB Ingesamt 41 Beiträge

26.03.2009 - 17:10 Uhr

keine Angst, das ist nicht mal 1% des Quellcodes,

ich schau mal ob mir jemand in einem anderem Forum weiterhelfen kann, da Ihr nicht mal ein kleines Quellcodeschnippsel überfliegen könnt, ich dacht das ist ein Forum für Profis, die jeden kleinen Fehler gleich finden sollten.

Danke ihr Profis und Gruß

Peter

26.03.2009 - 17:00 Uhr

Ich will doch keine Lösung, meinen Fehler habe ich doch auch beschrieben.
Debugging habe ich auch durchgeführt (keinen Fehler gefunden) und da ich noch nicht so erfahren bin, dachte ich mir vielleicht ist es nur ein kleiner Fehler der mir nicht auffällt aber vieleicht euch Profis gleich. Ich denke mir die ganze Zeit das es vermutlich an einer Variblendeklaration hängt, ich sehe aber keinen Fehler.

Gruß und Danke

Peter

26.03.2009 - 16:52 Uhr

Ich kann in meinem Code hier einfach keinen Fehler mehr finden, könnte Ihr mal bitte schauen ob euch was daran auffällt, was den Fehler verursacht?

// GListBoxItem class 
    public class GListBoxItem
    {
        private string _myText;
        private int _myImageIndex;
        // properties 
        public string Text
        {
            get { return _myText; }
            set { _myText = value; }
        }
        public int ImageIndex
        {
            get { return _myImageIndex; }
            set { _myImageIndex = value; }
        }
        //constructor
        public GListBoxItem(string text, int index)
        {
            _myText = text;
            _myImageIndex = index;
        }
        public GListBoxItem(string text) : this(text, -1) { }
        public GListBoxItem() : this("") { }
        public override string ToString()
        {
            return _myText;
        }
    }//End of GListBoxItem class

    // GListBox class 
    public class GListBox : ListBox
    {
        private ImageList _myImageList = new ImageList();
        public ImageList ImageList
        {
            get { return _myImageList; }
            set { _myImageList = value; }
        }
        public GListBox()
        {
            // Set owner draw mode
            this.DrawMode = DrawMode.OwnerDrawFixed;
        }
        protected override void OnDrawItem(System.Windows.Forms.DrawItemEventArgs e)
        {
            e.DrawBackground();
            e.DrawFocusRectangle();
            GListBoxItem item = new GListBoxItem();
            Rectangle bounds = e.Bounds;
            Size imageSize = _myImageList.ImageSize;
            try
            {
                item = (GListBoxItem)Items[e.Index];
                if (item.ImageIndex != -1)
                {
                    ImageList.Draw(e.Graphics, bounds.Left, bounds.Top, item.ImageIndex);
                    e.Graphics.DrawString(item.Text, e.Font, new SolidBrush(e.ForeColor),
                        bounds.Left + imageSize.Width, bounds.Top);
                }
                else
                {
                    e.Graphics.DrawString(item.Text, e.Font, new SolidBrush(e.ForeColor),
                        bounds.Left, bounds.Top);
                }
            }
            catch
            {
                if (e.Index != -1)
                {
                    e.Graphics.DrawString(Items[e.Index].ToString(), e.Font,
                        new SolidBrush(e.ForeColor), bounds.Left, bounds.Top);
                }
                else
                {
                    e.Graphics.DrawString(Text, e.Font, new SolidBrush(e.ForeColor),
                        bounds.Left, bounds.Top);
                }
            }
            base.OnDrawItem(e);
        }
    }//End of GListBox class

Gruß und Danke

Peter

26.03.2009 - 16:01 Uhr

Ich benötige nochmals eure Hilfe,

ich hänge immer noch an dem selben Problem mit der Listbox, soweit läuft es, ich bekomme nun beim zugreifen auf meine abgeleiteten Klassen einen Fehler:

Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.

Wie ich hier in dem Forum schon gefunden habe, kann es daran liegen, das eine Variable nicht mit new deklariert worden ist.

Habe ich das richtig verstanden, was hier

[FAQ] NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt

gemeint ist?

Vielen Dank und Gruß

Peter

24.03.2009 - 10:34 Uhr

Hi, danke fuer eure Hilfe bis jetzt,

ich habe das ganze nun weiterentwickelt. Ich bekomme in der Listbox nichts angezeigt, obwohl was drinnsteht. Mir ist nur nicht ganz klar, wo ich das Objekt jetzt zeichnen muss, damit es richtig angezeigt wird. Hier mal ein Quellcodeschnippsel zum verständnis, was ich gerade mache:



 FolderBrowserDialog dlgFolderOpen = new FolderBrowserDialog();

            if (dlgFolderOpen.ShowDialog() == DialogResult.OK)
            {

                this.Folderpath = dlgFolderOpen.SelectedPath;
                this.listBox1.Size = new System.Drawing.Size(170, 170);
                this.listBox1.Location = new System.Drawing.Point(10, 10);
                this.Controls.Add(listBox1);
                this.listBox1.MultiColumn = true;
                this.listBox1.SelectionMode = SelectionMode.MultiExtended;
                this.listBox1.DrawMode = DrawMode.OwnerDrawFixed;
                fileEntries = Directory.GetFiles(this.Folderpath, "*.bmp", SearchOption.AllDirectories);
                this.listBox1.BeginUpdate();

                for(int i = 0; i < this.fileEntries.Length; i++)
                    {

                        listBox1.Items.Add(Bitmap.FromFile(fileEntries[i]) + i.ToString());
                    }

                listBox1.EndUpdate();
                listBox1.SetSelected(0, true);
                listBox1.SetSelected(1, true);
                System.Diagnostics.Debug.WriteLine(listBox1.SelectedIndices[1].ToString());      
                  


            }

Kann mir bitte jemand helfen?

Gruß und Danke

Peter

23.03.2009 - 13:26 Uhr

ah okay, Danke JAck30lena

23.03.2009 - 13:04 Uhr

Hallo,

ich wollte mit der Listbox so eine Art kleine Galerie für Bildervorschau generieren.
Es ist mir aber nicht möglich in die Listbox ein Bild zu zeichnen, das Forum habe ich schon durchsucht, bin aber nicht ganz schlau aus so manchen Quellcode geworden.



Graphics t = this.listBox1.CreateGraphics();

FolderBrowserDialog dlgFolderOpen = new FolderBrowserDialog();
this.Folderpath = dlgFolderOpen.SelectedPath;

this.listBox1.DrawMode = DrawMode.OwnerDrawFixed;
fileEntries = Directory.GetFiles(this.Folderpath, "*.bmp", SearchOption.AllDirectories);

                    this.listBox1.Items.Add(Bitmap.FromFile(this.fileEntries[i]));
                    this.listBox1.Update();


Sieht von euch jemand hier einen Fehler ?(

Gruß und Danke

Peter

23.03.2009 - 10:15 Uhr

Ich habe nun eine Lösung gefunden, ich lasse mir jetzt mehrere Pictureboxen dynamisch zur Laufzeit untereinander nach Elementen generieren.

Gruß und Danke

Peter

23.03.2009 - 09:39 Uhr

weis denn keiner einen Ansatz?

23.03.2009 - 09:10 Uhr

Schönen guten Morgen,

ich möchte mehrere Bilder in einer Picturebox untereinander Zeichnen lassen,
ist dies generell möglich? Wenn ja, mit welchen Funktionen?

Nach 2 Stunden Goggel habe ich nichts zu diesem Thema gefunden,
das Forum habe ich auch schon durchsucht und es steht auch nichts darin.

Gruß und Danke

Peter

19.03.2009 - 11:23 Uhr

Ich habe es nun entlich hinbekommen.

Ich spreche die Dateien nun direkt an, da er sich den Pfad merkt und nicht mehr die Dateien über Pfad.

Vielen Dank

PeterB

19.03.2009 - 09:51 Uhr

Hi DavidT

hier nun mal der Pfadstring:

	Folderpath	&quot;C:\\Programme\\Ahead\\Nero\\WaveEditor&quot;	string  

so wird er bei Debuggen angezeigt.

Gruß

Peter

19.03.2009 - 09:46 Uhr

Hi DavidT,

ich lasse den dlgFolderOpen.ShowDialog() gleich in einer if abfrage abfragen.

hier mal ein größerer Teil meines Quellcodes, da ich keinen Fehler erkennen kann.
Ich habe das alles eigentlich so wie du.



        private void Folien_Load(object sender, EventArgs e)
        {
            myGraphics = this.pictureBox1.CreateGraphics();
            
            //OpenFileDialog dlgFileOpen = new OpenFileDialog();
            //dlgFileOpen.Filter = "Bitmapdateien (*.bmp)|*.bmp";
            FolderBrowserDialog dlgFolderOpen = new FolderBrowserDialog();

            if (dlgFolderOpen.ShowDialog() == DialogResult.OK)
            {
                this.Folderpath = dlgFolderOpen.SelectedPath;

                try { this.fileEntries = Directory.GetFiles(this.Folderpath, "*.bmp", SearchOption.AllDirectories); }
                catch (Exception test) { MessageBox.Show("Exception: " + test.ToString()); }
                            
                for (int i = 0; i < this.fileEntries.Length; i++)
                {
                    this.ganzpfad = this.Folderpath+this.fileEntries[i];
                    this.imageList1.Images.Add(Bitmap.FromFile(this.ganzpfad));
                }

Vielen Dank fürs schauen

Gruß

Peter

19.03.2009 - 09:32 Uhr

Oh Sorry;

dlgFolderOpen ist von FolderBrowserDialog();


FolderBrowserDialog dlgFolderOpen = new FolderBrowserDialog();

GRuß

Peter

19.03.2009 - 08:56 Uhr

Schönen guten morgen, 😁

ich versuche folgendes Problem schon zwei Tag zu lösen. 🙁

Ich erhalte immer den Fehler: ⚠

Das angegebene Pfadformat wird nicht unterstützt. ?(

Laut MSDN-Eintrag sollte dies alles so passen, wie es in meinem Quellcode ist.


                this.Folderpath = dlgFolderOpen.SelectedPath.ToString();

                try { this.fileEntries = Directory.GetFiles(this.Folderpath, "*.bmp", SearchOption.AllDirectories); }
                catch (Exception test) { MessageBox.Show("Exception: " + test.Message); }

Ich denke es liegt daran das ich den Pfad mit einfachen "&quot; zurückbekomme der aber "\" enthalten sollte. ?(

Vielen Dank für eure Hilfe und Gruß

Peter

17.03.2009 - 12:35 Uhr

Mahlzeit Schmoiz,

das ist nach meinem Kentnisstand nicht möglich.

Gruß

Peter

17.03.2009 - 12:29 Uhr

Es werden mir keine Images erzeugt;


this.imageListLarge.Draw(g, System.Drawing.Point.Empty, 0);

sollte mir doch die large images von der liste anzeigen,

äh sorry, es geht um ImageList.

Gruß

17.03.2009 - 11:55 Uhr

ja genau, danke, sowas habe ich gesucht,

jetzt noch mal ne kurze frage,

gibt es auch einen openFileDialog für Verzeichnisse? Damit ich das ganze noch etwas dynamischer machen kann.

Vielen Dank und Gruß

Peter

17.03.2009 - 11:20 Uhr

Danke schön, das funktioniert jetzt, kann ich mir nun wenn es mehrere dateien sind, diese Pfade in ein Array schreiben lassen. Ich habe es schon versucht, doch klappt leider nichts.

Danke

Peter

17.03.2009 - 11:14 Uhr

Hi,

ich habe folgendes Problem:

es wird mir keine Datei angezeigt, obwohl eine Datei vorhanden ist.


            try { textBox1.Text = Directory.GetDirectories(@"C:\Dokumente und Einstellungen\Peter\Eigene Dateien\Eigene Bilder\", "*.bmp", SearchOption.AllDirectories).Length.ToString(); }
            catch (Exception test) { MessageBox.Show("Exception: " + test.Message); }

Ich habe auch schon ein Exeptionhandling angewendet, was aber keinen Fehler wirft. Weis jemand von euch woran es noch liegen koennte?

Gruß und Danke

Peter

17.03.2009 - 10:50 Uhr

Hi,

ist es möglich, das ich per Drag and Drop ein Bild aus einer Picutrebox ziehen kann?

Ich habe das ganze nun so versucht:


this.pictureBox1.DoDragDrop(this.Verzeichnispfad, DragDropEffects.All);

was aber leider die Picturebox für Drag and Drop jedoch nicht freigiebt.

Vielen Dank und Gruß

Peter

17.03.2009 - 10:23 Uhr

Hallo,

ich habe folgendes Problem, ich kann mir Thumbnails erstellen lassen von Bitmap Dateien, was aber nun nicht ist das ganze über Listviews zu machen.

Ich habe auch schon einige Howtos angeschaut und werde nicht so richtig schlau daraus, was in dem Quellcode mein Fehler sein koennte, da mir keine Thumbnails in der Listview angezeigt werden. Ich habe das ganze über LargeImage versucht.


        private void Folien_Load(object sender, EventArgs e)
        {
            OpenFileDialog dlgFileOpen = new OpenFileDialog();
            dlgFileOpen.Filter = "Bitmapdateien (*.bmp)|*.bmp";
            
           

            if (dlgFileOpen.ShowDialog() == DialogResult.OK)
            {
                this.Verzeichnispfad = dlgFileOpen.FileName; 
                
                this.pictureBox1.Image = System.Drawing.Image.FromFile(this.Verzeichnispfad);
                this.pictureBox1.Image = this.pictureBox1.Image.GetThumbnailImage(170, 170, null, IntPtr.Zero);
                this.imageListLarge.Images.Add(Bitmap.FromFile(this.Verzeichnispfad));
                Graphics g = this.listView1.CreateGraphics();
                this.imageListLarge.Draw(g, System.Drawing.Point.Empty, 0);

            }
        }

Vielen Dank und Gruß

Peter

16.03.2009 - 12:00 Uhr

Ich erstelle das ganze nun so:

        private void Folien_Load(object sender, EventArgs e)
        {
            OpenFileDialog dlgFileOpen = new OpenFileDialog();
            dlgFileOpen.Filter = "Bitmapdateien (*.bmp)|*.bmp";

            if (dlgFileOpen.ShowDialog() == DialogResult.OK)
            {
                this.Verzeichnispfad = dlgFileOpen.FileName; 
                
                this.pictureBox1.Image = System.Drawing.Image.FromFile(this.Verzeichnispfad);
                this.pictureBox1.Image = this.pictureBox1.Image.GetThumbnailImage(170, 170, null, IntPtr.Zero);
                this.listView1.LargeImageList.Images.Add (System.Drawing.Bitmap.FromFile(this.Verzeichnispfad), Color.Transparent);
            }
        }

ich habe nun ein Problem mit dem ListView, ich möchte das ich ein Bild in der ListView speichern kann.

Danke

Peter

16.03.2009 - 09:03 Uhr

Morgen liebe c# Gemeinde,

ich habe volgendes vor:

Ich möchte mir ein Thumbnail generieren lassen aus einer BMP Datei.

Der Quellcode sieht bis jetzt wie folgt aus:



        string Verzeichnispfad;

        public virtual BitmapSource Vorschau
        {
            get { return Vorschau; }
            set { Vorschau = value; }
        }

        private void Folien_Load(object sender, EventArgs e)
        {
            OpenFileDialog dlgFileOpen = new OpenFileDialog();
            dlgFileOpen.Filter = "Bitmapdateien (*.bmp)|*.bmp";

            if (dlgFileOpen.ShowDialog() == DialogResult.OK)
            {
                this.Verzeichnispfad = dlgFileOpen.FileName;
                this.pictureBox1.BackgroundImage = this.Verzeichnispfad;          

            }
        }

ich bekomme beim kompilieren jedoch den Fehler, das ich sting nicht in System.drawing.image konvertieren kann. Kann mir jemand von euch helfen.

Vielen Dank

Peter

12.03.2009 - 10:20 Uhr

hat nun endlich funktioniert,

Danke Michbeck1983

12.03.2009 - 10:15 Uhr

Nein, kein WPF, ich bin unter Windows Forms unterwegs, aber es muss doch auch eine möglichkeit geben für Thumbnails unter Windows Forms oder?

Gruß

Peter

12.03.2009 - 10:09 Uhr

Ja, ich entwickle mit dem .net Framework 3.5,

das in der MSDN habe ich schon gefunden, aber finde nicht wo ich die
Assembly: PresentationCore (in PresentationCore.dll) einbinde.

Gruß und Danke

Peter

12.03.2009 - 09:59 Uhr

Ich bin nun ein Stück weiter, ich versuche nun Namespace: System.Windows.Media.Imaging

einzubinden, kann jedoch das Assembly nicht setzen.

Kann mir bitte eine kurze Hilfestellung geben, wie ich es einbinden kann.

Gruß und Danke

Peter

12.03.2009 - 09:54 Uhr

Genau da ist mein Problem,

ich weis nicht welchen Asssembly ich benötige.

Gruß

Peter

12.03.2009 - 09:50 Uhr

Morgen,

ich möchte Namespace: System.Windows.Media.Imaging
einbinden, leider bekomme ich das nicht hin.

Kann mir bitte mal kurz einer eine Anleitung geben, da ich immer den Fehler:

Fehler 1 Der Typ- oder Namespacename "Media" ist im Namespace "System.Windows" nicht vorhanden. (Fehlt ein Assemblyverweis?) C:\Dokumente und Einstellungen\Peter\Desktop\Schule\dotnet\Projekt\Folien.cs 8 22

erhalte

12.03.2009 - 09:26 Uhr

Hallo C# Gemeinde,

ich habe folgendes vor: 🤔

Ich möchte mir aus einem Verzeichnis, das ich auswählen kann, thumbnails anzeigen lassen (vorschau von *.bmp) Dateien. Leider hab ich bis jetzt noch garkeinen Ansatz wie ich das angehen soll.

Folgendes habe ich mir schon überlegt: 😭

Ich möchte das alle Dateinamen in einem Array gespeichert werden die die Endung .bmp enthalten, dann kleine Thumbnails von den .bmp Dateien erzeugen lassen, die ich dann hoch und runter Scrolen kann. Wenn ich dann das Thumbnail anklicke, soll es im Hintergrund geöffnet werden, so wie ein Hintergrundbild ( Picturebox durchsichtig in den Hintergrund legen und das Bild laden)

Bitte schaut euch mal an, ob dies möglich wäre, oder ao mein Ansatz garnicht stimmt. 🙁

Vielen Dank und Gruß

Peter

12.03.2009 - 09:12 Uhr

thx Michbeck1983,

ich habs gerade gesehen 8o;

Vielen Dank und schönen Tag noch

echt spitze das Forum hier 👍

12.03.2009 - 08:55 Uhr

Schönen guten morgen,

ich habe folgendes Problem, ich wollte einen Filter für OpenFileDialog anlegen, dies habe ich auch soweit gemacht. Jedoch wird dieser Filter nicht beachtet, ich kann keinen Fehler finden. Hier der Code:

        private void Folien_Load(object sender, EventArgs e)
        {
            OpenFileDialog dlgFileOpen = new OpenFileDialog();
            if (dlgFileOpen.ShowDialog() == DialogResult.OK)
            {
                Verzeichnispfad = dlgFileOpen.FileName;
                dlgFileOpen.Filter = "Bitmapdateien (*.bmp)|*.bmp)";
                MessageBox.Show(Verzeichnispfad);


            }
        }

Vielen Dank für eure Hilfe

Gruß

Peter

10.03.2009 - 12:33 Uhr

Ich habe das ganze mit NumericUpDown gemacht und es klappt alles, habe es auch mit dem auf leer prüfen nach vorne gezogen und es klappt.

Vielen Danke an euch

Gruß

Peter

10.03.2009 - 12:27 Uhr

Ähm Sorry,

das Problem lieg darin, wenn ich die Textbox leeren will, dann erhalte ich immer einen Fehler. Da die Textbox leer ist.

Gruß

Peter

10.03.2009 - 12:18 Uhr

Hallo Gemeinde,

ich habe folgendes Problem; ich möchte abfragen ob die Textbox leer ist und ob sich ein Wert zwischen 0 und 25 in der Textbox befindet.

        private void textBox1_TextChanged(object sender, EventArgs e)
        {
            int buffer = 0;
            if  ((Convert.ToInt32(this.textBox1.Text) <= 25) && (this.textBox1.Text != ""))
            {
                    this.liniendicke.Value = Convert.ToInt32(this.textBox1.Text);}}

Gruß und danke

Peter

09.03.2009 - 13:13 Uhr

Habe das Problem nun in den Griff bekommen 😄, siehe:


            if (this.farbe == "rot")
            {
                this.Refresh();
                Graphics t = this.pictureBox1.CreateGraphics();
                t.FillEllipse(Brushes.Red, 25 - (this.liniendicke.Value / 2), 25 - (this.liniendicke.Value / 2), this.liniendicke.Value, this.liniendicke.Value);
                t.Dispose();
            }

Ihr seit echt spitze, 👍

Vielen Dank und Gruß

Peter

09.03.2009 - 12:15 Uhr

Ich habe das ganze nun etwas umgeschrieben, es klappt aber noch nicht ganz.

        private void liniendicke_Scroll(object sender, EventArgs e)
        {

            if (this.farbe == "rot")
            {
                Graphics t = this.pictureBox1.CreateGraphics();
                t.FillEllipse(Brushes.Red, 25 - (this.liniendicke.Value / 2), 25 - (this.liniendicke.Value / 2), this.liniendicke.Value, this.liniendicke.Value);
                t.Dispose();
            }}

Ich bitte um weiter Infos, wie ich es z.B. abändern müsste.

Werde aus dem Tutorial leider nicht schlau 😦.

Vielen Dank

Peter

09.03.2009 - 11:59 Uhr

Hi JAck30lena,
aber sorry, wie oben steht bin ich noch newbi.
Seit letzter Woche mache erst ich c#.

Kannst du mir bitte ein kurzes Beispiel dazu geben wie der Quellcode da aussehen müsste oder wie ich die Methode aufrufen muss.

Vielen Dank

Peter

09.03.2009 - 11:43 Uhr

Ich habe diese Tutorials usw. schon angeschaut, bin aber nicht so ganz schlau geworden aus dem Ganzen. 🙁 Ich wäre euch sehr verbunden, wenn mir jemand erklären könnte was ich denn da falsch mache. X(

Vielen Dank

Peter

09.03.2009 - 11:31 Uhr

Hi,

ich möchte eine Ellipse über eine Scrollbar ansteuern, was soweit ganz gut klappt.
Die Ellipse wird gezeichnet wenn ich die Scrollbar nach rechts bewege =), bewege ich aber den Scrollbar nach links, bleibt die Ellipse in der aktuellen größe X(.

Ich weis nicht weiter. 🙁

Vielen Dank

        private void liniendicke_Scroll(object sender, EventArgs e)
        {
            Graphics t = this.pictureBox1.CreateGraphics();
            if (this.farbe == "rot")
            {
                t.FillEllipse(Brushes.Red, 25 - (this.liniendicke.Value/2), 25 - (this.liniendicke.Value/2), this.liniendicke.Value, this.liniendicke.Value);
            }