Naja, ein einfaches
chart1.DataBind();
scheint zu reichen, um die Chart zu aktualsieren.
Ich habe in einer Form ein chart-Element. Datenquelle ist eine lokale DB (*.sdf) und im Chart wird als Series eine Spalte als X und eine Spalte als Y Wertquelle verwendet. Funktioniert auch soweit nach Starten des Programms einwandfrei. Die Werte werden aus der DB gelesen und im Chart dargestellt.
Ich würde jetzt gerne - beispielsweise über einen "Aktualisieren"-Button diese Werte neu einlesen. Dinge wie
chart1.Update();
bzw.
chart1.Refresh();
habe ich erfolglos probiert.
Wie bringe ich die Chart dazu, zur Laufzeit die Werte neu einzulesen?
Okay, dass ich den Timer im Designer nicht einfügen muss, war mir nicht klar. Der Timer ist leider recht schlecht dokumentiert - habe hier einige Bücher, in denen ich nicht fündig wurde im Hinblick auf meine Anwendung.
Danke.
Weil es kompliziert ist?!
Mein Vorschlag wäre dabei in den button1_Click eine if-Schleife zu setzen à la:
Dann sieht das Ganze wie folgt aus:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace test_timer
{
public partial class Form1 : Form
{
int tick=0;
bool first = false;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
if (first == false)
{
Timer timer1 = new Timer();
}
else
{
timer1.Start();
}
}
private void timer1_Tick(object sender, EventArgs e)
{
tick = tick+1;
label1.Text = Convert.ToString(tick);
}
private void button2_Click(object sender, EventArgs e)
{
timer1.Stop();
}
}
}
Und der verrückte Timer startet immer noch, ohne dass button1 geklickt wurde. Völlig unplausibles Verhalten für mein Verständnis.
Ich möchte gerne einen Timer erzeugen, der zunächst gestoppt ist. Der Code anbei macht genau das, was ich möchte. Sprich mit button2 kann man den Timer stoppen, mit button1 kann man ihn wieder starten. Allerdings wird das "timer1.Stop()" innerhalb von public Form1() { ... } ignoriert, so dass der Timer nach Programmstart bereits läuft - warum wird die kommentierte Zeile ignoriert?!
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace test_timer
{
public partial class Form1 : Form
{
int tick=0;
public Form1()
{
InitializeComponent();
Timer timer1 = new Timer();
timer1.Stop(); // <====== warum wird diese Zeile ignoriert?!
}
private void button1_Click(object sender, EventArgs e)
{
timer1.Start();
}
private void timer1_Tick(object sender, EventArgs e)
{
tick = tick+1;
label1.Text = Convert.ToString(tick);
}
private void button2_Click(object sender, EventArgs e)
{
timer1.Stop();
}
}
}
Ich würde für ein ernsthaftes Projekt auch zu keinem Freehoster greifen.
Hier gibts das erste Jahr gratis - beide Anbieter sind auch empfehlenswert:
Ansonsten gibts hier einige empfehlenswerte Anbieter:
http://spacelist.de
Wann ist denn die Express Version zu erwarten?