我需要做一个旋钮控制,或使用一个有效的旋钮。我从该网站下载了一个:http://www.c-sharpcorner.com/uploadfile/desaijm/knobcontrolusingwindowsforms11182005004925am/knobcontrolusingwindowsforms.aspx但它并没有按照我的意愿工作。
当我移动它时,我需要这个旋钮控制器可以制作一个完整的圆圈。当你转到最大值时,如果你传递这个值,按钮会自动转到另一个值(即0)。
我想做的就是在没有最大值的情况下一直递增旋钮旋转值,并且在超过最大值时不要重新启动到0。
我发布了价值变化发生的代码,但我正在研究它3个小时而且我不知道如何改变......还有两个变量:最大值和最小值都有最大值旋钮的最小值。
protected override void OnMouseMove(MouseEventArgs e)
{
//--------------------------------------
// Following Handles Knob Rotating
//--------------------------------------
if (this.isKnobRotating == true)
{
this.Cursor = Cursors.Hand;
Point p = new Point(e.X, e.Y);
int posVal = this.getValueFromPosition(p);
Value = posVal;
}
}
有没有想过这样做或任何可以帮助我的C#控件?
谢谢!
答案 0 :(得分:0)
最后我找到了自己的解决方案,希望对其他人有所帮助!
if (this.isKnobRotating == true)
{
lastValue = Value;
this.Cursor = Cursors.Hand;
Point p = new Point(e.X, e.Y);
int posVal = this.getValueFromPosition(p);
Value = posVal;
if ((lastValue >= Maximum + radiusLeft - 1) && Value == 0)
{
numRounds++;
}
else if (lastValue <= Minimum && (Value == Maximum + radiusLeft - 1))
{
numRounds--;
}
finalValue = (Maximum + radiusLeft) * numRounds;
result = finalValue + Value;
}