如何使telerik自动完成文本框在c# winforms中只接受1个条目

djmepvbi  于 2023-05-18  发布在  C#
关注(0)|答案(3)|浏览(209)

我正在使用rad自动完成文本框。我想只接受输入后,我已经选择了一个输入,我必须禁用,以便不接受没有输入,但我还需要删除该输入,以便用户可以删除以前的输入和输入其他输入。即,我只需要一个选择要做。如果已经作出选择,该字段必须是只读的,如果我删除以前的选择,它应该再次编辑。

qv7cva1a

qv7cva1a1#

您可以KeyPress事件并检查radAutoComplete文本长度,如果有多个则返回。

private void radAutoCompleteBox1_KeyPress(object sender, KeyPressEventArgs e)
{
    if (radAutoCompleteBox1.Text.Length > 0)
        e.Handled = true;
}

您也可以将此代码用于textBoxescomboBoxes等。

xmjla07d

xmjla07d2#

根据Telerik的说法,这是不可能的,这是正确的,你不能阻止用户“选择”多个条目,但是你可以阻止多个条目被“存储”
因此,当用户存在自动完成字段时,我删除自动完成框中的所有条目-除了第一个输入(并训练用户),这样。

private void stripmultientries()
    {
        // remove multi entries in the stock cat box ??? - leaver only the first
        string fulltext = radAutoCompleteBox1.Text;
        // remove everything after the first semi colon //
        int index = fulltext.IndexOf(";");
        if (index > 0)
        {
            fulltext = fulltext.Substring(0, index);
        }
        radAutoCompleteBox1.Text = fulltext;
    }

保存窗体或退出自动完成控件时,可以调用此方法

soat7uwm

soat7uwm3#

我遇到了类似的问题-我不得不将选择限制在一个值上。这可以通过检查自动完成框项目的计数来完成。

private void radAutoCompleteBoxCWP_KeyPress(object sender, KeyPressEventArgs e)
    {
        // prevent adding more than one value
        if (((Telerik.WinControls.UI.RadAutoCompleteBox)sender).Items.Count > 0)
            e.Handled = true;
    }

相关问题