Entwickler-Ecke

Multimedia / Grafik - Chart Balken erhöhen mit Button


markus0911 - Fr 19.05.17 15:13
Titel: Chart Balken erhöhen mit Button
Hallo zusammen,
Bin neu hier und acu noch ganz neu im Thema C#.

Ich hätte gerne ein Balkendiagramm das beim drücken eines Buttons seinen Wert um eins erhöht.
Alternativ kann man den gewünschten Wert auch in einer Textbox neben dem Balkendiagramm eingeben.
Das ist auch schon alles... Habe leider bei Google nix gefunden. Oder ich bin zu doof das richtige einzugeben.
Hier mal mein Code (Das Auskommentierte waren meine missglückten Versuche):


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
    public partial class frmMain : Form
    {
        int s_IN_Punkte_Gruppe1 = 0;

        public frmMain()
        {
            InitializeComponent();
        }

        private void btnGruppe1_Click(object sender, EventArgs e)
        {
            s_IN_Punkte_Gruppe1 = Convert.ToInt32(this.tbGruppe1.Text);
            s_IN_Punkte_Gruppe1 = s_IN_Punkte_Gruppe1+1;
            this.tbGruppe1.Text = Convert.ToString(s_IN_Punkte_Gruppe1);

           // chartSaufstatus.Update();

          //  chartSaufstatus.Series["Saufstatus"].Points.Add(s_IN_Punkte_Gruppe1);
          //  chartSaufstatus.Series["Saufstatus"].Points[0].YValues[0] = 8;
          //  chartSaufstatus.Series["Saufstatus"].Points[0].YValues[0] = doubletest;
          //  chartSaufstatus.Series["Saufstatus"].Points[0].YValues.SetValue(70, 0);

          
           // this.tbDreckbieber.Text = s_IN_Punkte_Gruppe1;
        }

        private void frmMain_Load(object sender, EventArgs e)
        {
            chartSaufstatus.Series["Saufstatus"].Points.AddXY("Peter", s_IN_Punkte_Gruppe1);
         //   chartSaufstatus.Update();
            chartSaufstatus.Series["Saufstatus"].Points.AddXY("Sabine"5);       

     //       chartSaufstatus.Series["Saufstatus"].Points.Add(10);
     //       chartSaufstatus.Series["Saufstatus"].Points[0].Color = Color.Blue;
     //       chartSaufstatus.Series["Saufstatus"].Points[0].AxisLabel = "Peter";
     //       chartSaufstatus.Series["Saufstatus"].Points[0].LegendText = "Peter";
     //       chartSaufstatus.Series["Saufstatus"].Points[0].Label = "";
        }
    }

Wäre euch sehr Dankbar für Hilfe!!!

Moderiert von user profile iconNarses: C#-Tags hinzugefügt


Delete - Fr 19.05.17 15:32

- Nachträglich durch die Entwickler-Ecke gelöscht -


markus0911 - Fr 19.05.17 16:42

Das Diagramm öffnet sich, Peter hat den Wert 0 und Sabine 5. Soweit so gut. Wenn ich jetzt den Button drücke erhöht sich mein INT das Diagramm ändert bzw. Aktualisiert sich aber nicht.


Ralf Jansen - Fr 19.05.17 16:48

Du mußt denn Wert auch der Serie im Chart hinzufügen bzw. je nach dem was du wie machst den vorhanden Wert durch den neuen ersetzen.


markus0911 - Fr 19.05.17 17:41

Das hab ich mit dem Auskommentierten Code ja schon versucht. Nicht mal die festen Werte wie "8" und "70" funktionieren.


Delete - Fr 19.05.17 18:24

- Nachträglich durch die Entwickler-Ecke gelöscht -


markus0911 - Sa 20.05.17 13:00

Vielen Dank. Das funktioniert!!! Eigentlich recht einfach aber mit Google finden ist echt schwer.

Bin jetzt an einem neuen Problem. Habe mehrere Balken (4 Stück) unter jedem ist ein Button zum erhöhen des Wertes.
Wenn ich jetzt die Fenstergröße ändere vergrößert sich auch mein Chart da ich "Anchor" angepasst habe. Passt auch soweit.
Meine Buttons sind dann aber nicht mehr direkt unter den Balken. Wie kann ich die Positionen der Buttons irgendwie an die der Balken binden o.ä.?


Delete - Sa 20.05.17 13:21

- Nachträglich durch die Entwickler-Ecke gelöscht -


markus0911 - Sa 20.05.17 14:51

Das meine ich nicht. Die Buttons können ruhig gleich groß bleiben.
Es geht um die Position der Buttons. Siehe Anhang.


Delete - Sa 20.05.17 22:39

- Nachträglich durch die Entwickler-Ecke gelöscht -


Th69 - So 21.05.17 08:10

Hallo markus0911,

benutze ein TableLayoutPanel als Container für die Buttons (und TextBoxen) - s. Anhang.
Erzeuge 4 Spalten (Columns) und setze diese jeweils auf 25% (über die Eigenschaft Columns). Dadrin platziere jeweils ein Panel (oder alternativ ein UserControl), worauf dann die TextBox und der Button gesetzt ist.
Stelle bei dem TableLayoutPanel dann Anchor auf Bottom, Left, Right.


Delete - So 21.05.17 12:41

- Nachträglich durch die Entwickler-Ecke gelöscht -


markus0911 - Mi 24.05.17 15:00

Super. Passt. Vielen Dank. Habt mir echt geholfen!!!