【发布时间】:2023-02-01 19:11:19
【问题描述】:
包括上次和当前值。 当前代码未更改标签文本。
目标是无论我向左或向右移动鼠标的速度有多快,都可以捕获 trackBar 值。
我尝试使用鼠标上下事件,但效果不佳。 不确定如何使用事件进行计算。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Sliders
{
public partial class Form1 : Form
{
Label[] tile = new Label[11];
int oldValue = 0;
int lastValue = 0;
public Form1()
{
InitializeComponent();
oldValue = macTrackBar1.Value;
for (int i = 0; i < tile.Length; i++)
{
tile[i] = new Label();
tile[i].Height = 18;
tile[i].Width = 10;
tile[i].Left = 0;
tile[i].Top = i * 20;
tile[i].Text = i.ToString();
tile[i].Visible = true;
Controls.Add(tile[i]);
}
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void macTrackBar1_ValueChanged(object sender, decimal value)
{
if(lastValue > oldValue)
{
int newValue = lastValue - oldValue;
for(int i = 0; i < newValue; i++)
{
tile[i].Text = i.ToString();
}
}
}
private void macTrackBar1_MouseUp(object sender, MouseEventArgs e)
{
lastValue = macTrackBar1.Value;
}
private void macTrackBar1_MouseDown(object sender, MouseEventArgs e)
{
oldValue = macTrackBar1.Value;
}
}
}
【问题讨论】: