Laden...

Wenn Listbox1 angeklickt dann Listbox2 nicht mehr und Wert aus ini in ein Bar Chart

Erstellt von MxDanger vor 6 Jahren Letzter Beitrag vor 6 Jahren 1.366 Views
M
MxDanger Themenstarter:in
2 Beiträge seit 2018
vor 6 Jahren
Wenn Listbox1 angeklickt dann Listbox2 nicht mehr und Wert aus ini in ein Bar Chart

Hey Leute,

ich arbeite derzeit an einem kleinen Projekt in meinem Praktikum und bräuchte etwas hilfe.

[Gelöst]1.Ich have zwei Listboxen, wie schaffe ich es, dass wenn ich bei der einen Listbox einen Wert anklicke und dann versuche bei der anderen Listbox einen Wert anzuklicken, dass in der ersten listbox der Wert nicht mehr angeklickt ist.

  1. In meinen Projekt kann man sich registrieren und diese Daten werden in eine ini Datei gespeichert (ich weiß, dass es veraltet ist und nicht wirklich sinnvoll, aber der Ausbildungsleiter beauftragte mich diese zu benutzen). Jeder dieser registrierten User hat in meinen Projekt einen win score und diesen möchte ich wie eine Toplist als Balkendiagramm ausgeben. Mein Problem ist es, wie schaffe ich es, dass wenn sich ein neuen user registriert, dass er dem balkendiagramm direkt zugeordnet wird ?

Ich weiß die fragen für Anfänger, aber ich bin gerade erst am Anfang und versuche mein bestes um eine Ausbildung als Entwickler zu bekommen.

H
523 Beiträge seit 2008
vor 6 Jahren

Poste bitte Deinen vorhandenen Code, dann können wir Dir helfen.

M
MxDanger Themenstarter:in
2 Beiträge seit 2018
vor 6 Jahren

Okay, ich verlinke die Klasse, die ich für meine inifile benutze, damit der code hier nicht zuviel wird.
Arbeiten mit ini Files

Der Quelltext im Ereignis Load ist nicht ganz richtig und dient erstmal als Platzhalter um überhaupt ein Balkendiagramm angezeigt zu bekommen. Ich bräuchte nun Hilfe, dass ich es schaffe, dass die Top 3 mit den meisten Punkten im Balkendiagramm angezeigt werden.


namespace TippSpiel3._0
{
    public partial class Toplist : Form
    {
        public Toplist()
        {
            InitializeComponent();
            chartLoad();
            chart1.Series.Clear();
            s1.Points.Clear();

            INIFile ini = new INIFile("C:\\temp\\Accounts.ini");
            string user1 = ini.GetValue("user1", "Siege");
            string user2 = ini.GetValue("user2", "Siege");
            string user3 = ini.GetValue("user3", "Siege");
            string user4 = ini.GetValue("user4", "Siege");
            string user5 = ini.GetValue("user5", "Siege");

            int winsUser1 = Convert.ToInt32(user1);
            int winsUser2 = Convert.ToInt32(user2);
            int winsUser3 = Convert.ToInt32(user3);
            int winsUser4 = Convert.ToInt32(user4);
            int winsUser5 = Convert.ToInt32(user5);

            DataPoint spieler1 = new DataPoint(0, winsUser1);
            DataPoint spieler2 = new DataPoint(0, winsUser2);
            DataPoint spieler3 = new DataPoint(0, winsUser3);
            DataPoint spieler4 = new DataPoint(0, winsUser4);
            DataPoint spieler5 = new DataPoint(0, winsUser5);


            spieler1.Color = Color.Green;
            spieler2.Color = Color.Yellow;
            spieler3.Color = Color.Blue;
            spieler4.Color = Color.Red;
            spieler5.Color = Color.Black;
            s1.IsVisibleInLegend = false;
            s1.Points.Add(spieler1);
            s1.Points.Add(spieler2);
            s1.Points.Add(spieler3);
            s1.Points.Add(spieler4);
            s1.Points.Add(spieler5);

            Legend le = new Legend();
            le.CustomItems.Add(Color.Green, "Gewonnene Spiele");

            chart1.Series.Add(s1);
            chart1.Legends.Clear();
            chart1.Legends.Add(le);





        }

        private void chart1_Click(object sender, EventArgs e)
        {

        }

        Series s1 = new Series();
        public void chartLoad()
        {
            chart1.Series.Clear();
            chart1.Palette = ChartColorPalette.BrightPastel;
            chart1.BackColor = Color.LightBlue;
            chart1.ChartAreas[0].BackColor = Color.LightBlue;

            s1.ChartType = SeriesChartType.Bar;

            s1.BorderColor = Color.Black;
            s1.BorderDashStyle = ChartDashStyle.Solid;
            DataPoint auswertung = new DataPoint(0, 100);
            auswertung.Label = "leeres balkendiagramm";
            s1.Points.Add(auswertung);
            chart1.Series.Add(s1);



            
        }
    }
}
 
U
26 Beiträge seit 2018
vor 6 Jahren

Wenn du nur die höchsten Punktzahlen, ohne Name des Benutzers anzeigen willst:

Erstmal packst du alle nötigen Scores in ein Array.
Dann lässt du diese sortieren (Sort Methode o.ä).

Danach kannst du die sortierten Scores dem Balkendiagramm hinzufügen.