Linie in Chart Zeichnen
Hallo Ich Erstelle ein Chart in C# wie im Quelltext zu sehen.
Nun habe ich noch einen Scrollbar wo ich Die Uhrzeit Wählen möchte.
trackBar1_Scroll
Hier bekomme ich die Daten im Format 06:26:00;06:27:00;.... jenachdem was gewählt wird.
Ich möchte jetzt gernedas wenn ich mit dem Scrollbar 6:26 wähle er mir im Chart1 eine Linie bei 06:26 zeichnet leider bekomme ich das nicht hin. Wer kann mir helfen?
sqlConnection.Open();
SqlCommand myCommand = new SqlCommand("SELECT Datum, Start, Stop FROM dbo.MaschZuendung()", sqlConnection);
SqlDataReader myReader = null;
myReader = myCommand.ExecuteReader();
chart1.Series.Clear();
chart1.DataBindCrossTable(myReader, "Datum", "Datum", "Start,Stop", "");
foreach (System.Windows.Forms.DataVisualization.Charting.Series s in chart1.Series)
{
s.Color = Color.Red;
s.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.RangeBar;
}
chart1.Legends.Enabled = false;
chart1.ChartAreas.AxisY.LabelStyle.Format = "HH";
chart1.ChartAreas.AxisX.LabelStyle.Format = "dd.MM.yyyy";
chart1.ChartAreas.AxisY.Interval = 1;
chart1.ChartAreas.AxisX.Interval = 1;
chart1.ChartAreas.AxisY.IntervalType = System.Windows.Forms.DataVisualization.Charting.DateTimeIntervalType.Hours;
DateTime minDate = new DateTime(1900, 1, 1, 0, 0, 0);
DateTime maxDate = minDate.AddHours(24);
chart1.ChartAreas.AxisY.Minimum = minDate.ToOADate();
chart1.ChartAreas.AxisY.Maximum = maxDate.ToOADate();
chart1.ChartAreas.AxisX.Minimum = dateTimePicker1.Value.ToOADate()-1;
chart1.ChartAreas.AxisX.Maximum = dateTimePicker1.Value.ToOADate();
chart1.ChartAreas.AxisX.LabelStyle.Enabled = false;
sqlConnection.Close();
trackBar1_Scroll
Hier bekomme ich die Daten im Format 06:26:00;06:27:00;.... jenachdem was gewählt wird.
Ich möchte jetzt gernedas wenn ich mit dem Scrollbar 6:26 wähle er mir im Chart1 eine Linie bei 06:26 zeichnet leider bekomme ich das nicht hin. Wer kann mir helfen?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 363135
Url: https://administrator.de/contentid/363135
Ausgedruckt am: 25.11.2024 um 10:11 Uhr
7 Kommentare
Neuester Kommentar
Ist ein ganz normaler Double-Wert, der die Index-Position der Werte im Chart repräsentiert...
Ich müsste dann so
Aber das geht nicht da der Wert Doubel sein muss. Wenn ich den Convertiere geht es aber auch nicht
Was mache ich noch Falsch?
Da gehört ja auch ein Double-Wert rein und kein Datums-String (Position des entsprechenden Wertes im Chart equivalent zum Wert in der Trackbar)
Bei mir ist 1 bis XXX da es auf eine DataGrid greift und die Zeilennummer enthält.
Jepp.Ich müsste dann so
> chart1.ChartAreas.CursorX.SetCursorPosition(Convert.ToDateTime(dataGridView1.Rows[trackBar1.Value].Cells[1].Value.ToString()).ToString("1900-01-01 HH:mm:00"));
>
Aber das geht nicht da der Wert Doubel sein muss. Wenn ich den Convertiere geht es aber auch nicht
Was mache ich noch Falsch?
Cursor mit CursorX.IsUserEnabled = true aktivieren ...
Einfach mal lesen
https://msdn.microsoft.com/de-de/library/system.windows.forms.datavisual ...
Beispielprojekt (VS)
https://we.tl/SIqxUGZf7I
Einfach mal lesen
https://msdn.microsoft.com/de-de/library/system.windows.forms.datavisual ...
Beispielprojekt (VS)
https://we.tl/SIqxUGZf7I
S. Codeprojekt zum Download oben ...
Ist doch ganz einfach, die Cursorposition ist einfach die absolute Indexposition von den im Chart geladenen Daten.
Ist doch ganz einfach, die Cursorposition ist einfach die absolute Indexposition von den im Chart geladenen Daten.