为什么datagridview自动完成文本框背景变为黑色?

时间:2014-04-17 05:13:13

标签: c# winforms datagridview

以下是我用来将DGV文本框单元格设置为自动完成文本框的代码。

private void dgvEntryVerify_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
        {
            TextBox txtBox = e.Control as TextBox;
            txtBox.CharacterCasing = CharacterCasing.Normal;

            DataGridViewCell currentCell = dgvEntryVerify.CurrentCell;
            List<string> tmpList = new List<string>();
            string tmpValue = "";

            try
            {

                if (e.Control is TextBox)
                {
                    tmpValue = "";
                    tmpList.Clear();

                    TextBox currentTextBox = e.Control as TextBox;
                    currentTextBox.Multiline = false;

                    currentTextBox.AutoCompleteMode = AutoCompleteMode.Suggest;
                    currentTextBox.AutoCompleteSource = AutoCompleteSource.CustomSource;
                    currentTextBox.AutoCompleteCustomSource = new AutoCompleteStringCollection();

                    if (currentCell.OwningColumn.Name.Contains("Parish"))
                    {
                        tmpValue = "";
                        tmpList.Clear();
                        tmpValue = currentCell.EditedFormattedValue.ToString();
                        tmpList = GlobalSettings.LookupParish.FindAll(t => t.StartsWith(tmpValue));
                        if (tmpList.Count > 0)
                        {
                            currentTextBox.AutoCompleteCustomSource.AddRange(tmpList.ToArray());
                        }
                    }

                }
            }
            catch
            { }
        }

但在用户界面中,自动完成文本框变为黑色,我需要为白色,这样我才能看到从列表中选择的相同值。
 enter image description here
任何解决方案都非常感谢。

我正在使用VS2012,C#Winforms。

1 个答案:

答案 0 :(得分:0)

黑色单元格由例程中的一行特定代码引起:

tmpValue = currentCell.EditedFormattedValue.ToString();

我没有进一步了解发生这种情况的原因,但由于您根本没有使用tmpValue,因此对该行进行评论将解决您的问题。