0

我希望在旋转按钮控件中可以选择像 2400、4800、...、57600、115200 这样的波特率。

我看不到在 devexpress 旋转按钮控件中执行此操作的方法,因为(在我的理解中)只能设置整个值范围(例如 2400、2401、2402、...57599、57600)。我错了吗?devexpress中是否有更好的方法让用户设置波特率?

4

2 回答 2

0

您可以使用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();
}
于 2014-09-03T06:32:59.207 回答
0

您要查找的事件称为“旋转”

将最小值设置为 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 的代码,也可以结合这个:)

于 2014-09-05T14:31:36.180 回答