Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 组合框自动完成行为_C#_Winforms - Fatal编程技术网

C# 组合框自动完成行为

C# 组合框自动完成行为,c#,winforms,C#,Winforms,我们有一个组合框(下拉式),其中AutoCompleteMode=SuggestAppend,AutoCompleteSource=ListItems 每当我们打开下拉列表,然后开始在组合框的文本字段部分写入时,sugest框会覆盖所有下拉值的列表,但下拉值列表仍然保持焦点,并且我们无法在sugest框中选择任何项目 这是一个非常恼人的行为,我希望这不是它的默认行为。其他人也遇到了同样的问题,并发现了如何防止它?您正在使用AutoCompleteMode属性。您的问题是“建议”框覆盖了列表下拉列

我们有一个组合框(下拉式),其中AutoCompleteMode=SuggestAppend,AutoCompleteSource=ListItems

每当我们打开下拉列表,然后开始在组合框的文本字段部分写入时,sugest框会覆盖所有下拉值的列表,但下拉值列表仍然保持焦点,并且我们无法在sugest框中选择任何项目


这是一个非常恼人的行为,我希望这不是它的默认行为。其他人也遇到了同样的问题,并发现了如何防止它?

您正在使用AutoCompleteMode属性。您的问题是“建议”框覆盖了列表下拉列表。下面是自动完成的另一种方法

//ComboBox TextChanged Event
    private void txtName1_TextChanged(object sender, EventArgs e)
    {
        SqlDataAdapter daTemp = new SqlDataAdapter("select Name from Names where Name like '" + txtName1.Text + "%'", strConnection);
        DataTable dtTemp = new DataTable();
        daTemp.Fill(dtTemp);
        MessageBox.Show(dtTemp.Rows.Count.ToString());
        String[] Names = new String[dtTemp.Rows.Count + 1];
        if (dtTemp.Rows.Count > 0)
        {
            for (int x = 0; x <= dtTemp.Rows.Count - 1; x++)
            {
                Names[x] = dtTemp.Rows[x][0].ToString();
            }
        }
        else
        {
            MessageBox.Show("Data not found");
        }
        contextMenuStrip1.Items.Clear();
        for (int y = 0; y <= dtTemp.Rows.Count - 1; y++)
        {
            //Set The Desired Location (e.g. Besides of ComboBox) Of ContextMenuStrip
            contextMenuStrip1.Left = 80;
            contextMenuStrip1.Top = 90;
            contextMenuStrip1.Items.Add(Names[y].ToString());
            contextMenuStrip1.Visible = true;
        }
    }

您正在使用AutoCompleteMode属性。您的问题是“建议”框覆盖了列表下拉列表。下面是自动完成的另一种方法

//ComboBox TextChanged Event
    private void txtName1_TextChanged(object sender, EventArgs e)
    {
        SqlDataAdapter daTemp = new SqlDataAdapter("select Name from Names where Name like '" + txtName1.Text + "%'", strConnection);
        DataTable dtTemp = new DataTable();
        daTemp.Fill(dtTemp);
        MessageBox.Show(dtTemp.Rows.Count.ToString());
        String[] Names = new String[dtTemp.Rows.Count + 1];
        if (dtTemp.Rows.Count > 0)
        {
            for (int x = 0; x <= dtTemp.Rows.Count - 1; x++)
            {
                Names[x] = dtTemp.Rows[x][0].ToString();
            }
        }
        else
        {
            MessageBox.Show("Data not found");
        }
        contextMenuStrip1.Items.Clear();
        for (int y = 0; y <= dtTemp.Rows.Count - 1; y++)
        {
            //Set The Desired Location (e.g. Besides of ComboBox) Of ContextMenuStrip
            contextMenuStrip1.Left = 80;
            contextMenuStrip1.Top = 90;
            contextMenuStrip1.Items.Add(Names[y].ToString());
            contextMenuStrip1.Visible = true;
        }
    }

我在这种情况下使用AutoCompleteMode=Append,效果非常好。您是否尝试将自动完成模式更改为追加?试试吧,我在这种情况下使用AutoCompleteMode=Append,效果很好。您是否尝试将自动完成模式更改为追加?试试看