我希望在旋转按钮控件中可以选择像 2400、4800、...、57600、115200 这样的波特率。
我看不到在 devexpress 旋转按钮控件中执行此操作的方法,因为(在我的理解中)只能设置整个值范围(例如 2400、2401、2402、...57599、57600)。我错了吗?devexpress中是否有更好的方法让用户设置波特率?
我希望在旋转按钮控件中可以选择像 2400、4800、...、57600、115200 这样的波特率。
我看不到在 devexpress 旋转按钮控件中执行此操作的方法,因为(在我的理解中)只能设置整个值范围(例如 2400、2401、2402、...57599、57600)。我错了吗?devexpress中是否有更好的方法让用户设置波特率?
您可以使用BaseEdit.CustomDisplayText
事件来显示您的自定义值。只需创建一个具有波特率的数组并将最大值设置为数组的上限。
这是示例:
private int[] _baudRates = new int[] { 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600, 76800, 115200, 230400 };
public Form1()
{
InitializeComponent();
//...
spinEdit1.Properties.MinValue = 0;
spinEdit1.Properties.MaxValue = _baudRates.Length - 1;
spinEdit1.Properties.TextEditStyle = TextEditStyles.DisableTextEditor;
//...
}
private int GetBaudRate(object value)
{
return _baudRates[Convert.ToByte(value)];
}
private void spinEdit1_CustomDisplayText(object sender, CustomDisplayTextEventArgs e)
{
e.DisplayText = GetBaudRate(e.Value).ToString();
}
您要查找的事件称为“旋转”
将最小值设置为 2400,最大值设置为 115200
然后将您的逻辑放入 Spin Event Code 中:
private void spinEdit1_Properties_Spin(object sender, DevExpress.XtraEditors.Controls.SpinEventArgs e)
{
if (e.IsSpinUp)
{
spinEdit1.EditValue = 4800;
e.Handled = true;
}
else
{
spinEdit1.EditValue = 2400;
e.Handled = true;
}
}
注意:这个例子只上升到 4800 和下降到 2400 ,但你明白了。您可以使用一些 nempoBu4 的代码,也可以结合这个:)