在devexpress中为旋转按钮添加一些值

时间:2014-09-03 05:23:40

标签: c# devexpress devexpress-windows-ui

我希望在旋转按钮控件中可以选择2400,4800,...,57600,115200等波特率。

我无法在devexpress旋转按钮控制中看到这样做的方法,因为(在我的理解中)它只能设置整个范围的值(例如2400,2401,2402,。 ..57599,57600)。 我错了吗?在devexpress中有更好的方法,让用户设置波特率吗?

2 个答案:

答案 0 :(得分: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();
}

答案 1 :(得分:0)

您正在寻找的事件称为“旋转”

将Min设置为2400,Max设置为115200

然后将您的逻辑放入旋转事件代码:

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代码以及这个代码:)