0

我正在使用 C# win 表单,我需要防止粘贴到其中的组合框中。(仅当粘贴字符串不在下拉项目列表中时才防止)。如果粘贴字符串是下拉列表中的一个项目,用户应该允许粘贴它。我已经阻止用户尝试输入不存在的项目。下面提供了代码

     private void listLocation_KeyPress(object sender, KeyPressEventArgs e)
     {
        if (Char.IsControl(e.KeyChar))
        {
            return;
        }
        ComboBox box = ((ComboBox)sender);

        string nonSelected = box.Text.Substring(0, box.Text.Length - box.SelectionLength);

        string text = nonSelected + e.KeyChar;
        bool matched = false;
        for (int i = 0; i < box.Items.Count; i++)
        {
            if (((DataRowView)box.Items[i])[box.DisplayMember].ToString().StartsWith(text, true, null))
            {
                matched = true;
                break;
            }
        }
        e.Handled = !matched;
    }
4

1 回答 1

0

尝试这个 ...

private void comboBox1_TextChanged(object sender, EventArgs e)
{
    // Called whenever text changes.
    if (combobox1.findstringexact(comboBox1.Text) > -1)
        {
        // codes if the text not in the lists
        } 
}
于 2013-06-21T15:18:49.327 回答