使旋钮控制
本文关键字:控制 | 更新日期: 2023-09-27 17:51:11
我需要做一个旋钮控制,或者使用一个工作。我从那个网站上下载了一个:http://www.c-sharpcorner.com/uploadfile/desaijm/knobcontrolusingwindowsforms11182005004925am/knobcontrolusingwindowsforms.aspx,但它不像我想要的那样工作。
我需要这个旋钮控制可以使一个完整的圆当我移动它。当你去到最大值的那一刻,如果你传递这个值,按钮会自动转到另一个值(即0)。
所有我想做的是增加旋钮旋转值所有的时间没有最大值,而不是重新启动到0当它通过最大值。
我张贴的代码值变化发生的地方,但我在它上工作了3个小时,我不知道如何改变…还有两个变量maximum和minimum,表示旋钮的最大值和最小值。
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#控件可以帮助我吗?
谢谢!
最后我找到了自己的解决方案,希望对其他人有所帮助!
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;
}