私は毎秒タイマーでメソッドを呼び出すメソッドにこのコードを持っています:
data = new List<string>();
data.Add("Gpu Temeprature --- " + sensor.Value.ToString());
listBox1.DataSource = null;
listBox1.DataSource = data;
listBox1.Invalidate();
まず、listBox の値を 1 秒ごとに項目として更新します。今、私は2行目に新しいアイテムを追加したいので、両方が毎秒更新されるので、タイマーイベントでは、このコードが内部にある別のメソッドを呼び出しています:
// data = new List<string>();
data.Add("Cpu Temeprature --- " + sensor.Value.ToString());
listBox1.DataSource = null;
listBox1.DataSource = data;
listBox1.Invalidate();
データを使用する場合 = new List(); 2 番目の方法では、両方の項目を listBox の同じ場所に配置します。このデータを使用していない場合 = new List(); 次に、2番目のものが常に点滅し、毎秒点滅し、見栄えがよくありません。
これはタイマー イベントです。
private void timer2_Tick(object sender, EventArgs e)
{
if (tempCpuValue >= (float?)nud1.Value || tempGpuValue >= (float?)nud1.Value)
{
soundPlay = true;
blinking_label();
NudgeMe();
}
else
{
soundPlay = false;
stop_alarm = true;
}
cpuView();
gpuView();
}
cpuView() と gpuView() は、listBox を更新するタイマーで呼び出している 2 つのメソッドです。
そして、他に 2 つの listBox イベントがあります。
private void listBox1_MeasureItem(object sender, MeasureItemEventArgs e)
{
e.ItemHeight = 25;
}
private void listBox1_DrawItem(object sender, DrawItemEventArgs e)
{
if (e.Index == -1)
{
}
else
{
ColorText.ColorListBox(data, e);
}
}
ColorText は、リストボックス内のアイテムをクローリングする新しいクラスにあります。