Problem mit ToolStripProgressbar

MarioR

Mitglied
Hallo,

ich habe folgendes Problem:
- Im Mainform habe ich ein StatusStrip, auf diesem sind ein ToolStripStatusLabel und eine ToolStripProgressBar
- in einer seperaten Klasse lese ich Daten ein und Konvertiere sie.
- diese Klasse wird aus dem Mainform "bedient" (im button Klick)
- damit die Klasse Rückmeldungen über den Verlauf liefern kann habe ich min MainForm 3 Funktionen geschrieben und diese freigegeben:
Code:
        public void ProgressBarSet(String Description, int Min, int Max, int Step, int Pos)
        {
            this.FormMainprogressbarDescription.Text = Description;
            this.FormMainprogressbar.Minimum = Min;
            this.FormMainprogressbar.Maximum = Max;
            this.FormMainprogressbar.Step = Step;
            this.FormMainprogressbar.Value = Pos;
            this.FormMainprogressbar.Visible = true;
            this.FormMainprogressbarDescription.Visible = true;
        }
        public void ProgressBarStep()
        {
            this.FormMainprogressbar.PerformStep();
        }
        public void ProgressBarHide()
        {
            this.FormMainprogressbar.Visible = false;
            this.FormMainprogressbarDescription.Visible = false;
            this.FormMainprogressbarDescription.Text = "";
            this.FormMainprogressbar.Minimum = 0;
            this.FormMainprogressbar.Maximum = 100;
            this.FormMainprogressbar.Step = 1;
            this.FormMainprogressbar.Value = 0;
        }
Um diese in der Konvertiererklasse aufrufen zu können hat diese eine Speichervariable für das MainForm:
Code:
        private FormMain _window;
        public void SetProgressBarWindow(FormMain Window)
        {
            this._window = Window;
        }

über diese rufe ich dann die Funktionen "ProgressBar..." auf:
Code:
        private bool SetProgressStart(String Description, int Min, int Max, int Pos)
        {
            if (this._window == null) return false;
            this._window.ProgressBarSet(Description, Min, Max, 1, Pos);            
            return true;
        }
        /// <summary>Versteckt die Progressbar</summary>
        /// <returns></returns>
        private bool HideProgressBar()
        {
            if (this._window == null) return false;
            this._window.ProgressBarHide();
            return true;
        }
        /// <summary>1 Step in der Progressbar</summary>
        private void StepProgressBar()
        {
            if (this._window == null) return ;
            this._window.ProgressBarStep();
        }

Im Mainform siet das aber nicht so wie gewünscht aus (siehe progressbar_def.jpg)

Es sieht so aus, als ob er 2 neue StatusStrip-Elemente anlegt, aber im Debugging zeigt er nur 2 Items im StatusStrip an.

Was könnte das sein?


Gruß Mario
 

Anhänge

  • progressbar_io.jpg
    progressbar_io.jpg
    4,9 KB · Aufrufe: 30
  • progressbar_def.jpg
    progressbar_def.jpg
    5,1 KB · Aufrufe: 33
du könntest ev. mal nach schaun ob sich in der designer.cs des Formular eine ProgressbarStrip "Leiche" befindet.

Aber was mich am besten verwundert, eigentlich müssten die Progressbars nebeneinander sein wenn wirklich 2 existieren und nicht übereinander.

Ev. auch ein Refresh problem?

Ansonsten glaube ich bräuchten wir ne Beispiel exe oder du hast uns noch Code verschwiegen :)
 
Spyke,

Du bist mein Held ;-)

Manchmal kommt man nicht auf die einfachtsen Dinge.

Lösung ich habe in den 3 Funktionen: ProgressbarSet, -Step und -Hide
als letzte Funktion "this.StatusStrip1.Refresh();" eingefügt und nun gehts.

Vielen Dank.
Mario
 

Neue Beiträge

Zurück