winforms 在编辑模式下单元格为空时datagridview显示下拉列表

kmb7vmvb  于 2023-08-07  发布在  其他
关注(0)|答案(1)|浏览(104)

我正在使用带有4列的datagridview。我使用“Add”将所有值相加。没有数据表或数据源。这3列是一个ComboBoxColumn,其值可以编辑。当我在单元格中写入时,下拉列表会正确隐藏。然后我希望当我删除单元格中的所有字符串时(当单元格为空时),下拉列表会出现。
但在EditMode中,当我更改单元格原始值时(Ej:AAA)对于(Ej:BBB),用于获取值的代码始终显示原始值。
另外,我不知道显示下拉菜单的代码是否正确,因为我已经解释过这个问题。编辑:我检查,该部分工作正常。DroppedDown = true显示下拉列表。

private void DataGridView_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
        {
            comboBoxHandler = e.Control as ComboBox;

            if (comboBoxHandler != null)
            {
                comboBoxHandler.IntegralHeight = false;   //Sin esto el MaxDropDownItems no funciona
                comboBoxHandler.MaxDropDownItems = 10;
                comboBoxHandler.DropDownStyle = ComboBoxStyle.DropDown;
                comboBoxHandler.AutoCompleteSource = AutoCompleteSource.ListItems;
                comboBoxHandler.AutoCompleteMode = AutoCompleteMode.SuggestAppend;

                comboBoxHandler.KeyPress -= ComboBox_KeyPress;
                comboBoxHandler.KeyPress += ComboBox_KeyPress;

                comboBoxHandler.LostFocus += Combo_LostFocus;
            }
        }

个字符
编辑:对于任何看到这段代码的人,请不要把这段(comboBoxHandler.KeyPress += ComboBox_KeyPress;,comboBoxHandler.LostFocus += Combo_LostFocus;)在“EditingControlShowing”中。

daupos2t

daupos2t1#

使用comboBox TextChanged事件使下拉列表在comboBox为空时显示,在不为空时隐藏。但是我使用了ComboBox_KeyPress来隐藏下拉列表,因为我想要一个不同的行为。

private void DataGridView_TextChanged(object sender, EventArgs e)
    {
        if (string.IsNullOrWhiteSpace((string)dgvCustom.CurrentCell.EditedFormattedValue))
        {
            comboBoxHandler.DroppedDown = true;
        }
    }

字符串
实施例2:

if (string.IsNullOrWhiteSpace(comboBoxHandler.Text) && comboBoxHandler.DroppedDown == false)
        {
            comboBoxHandler.DroppedDown = true;
        }
        else if (!string.IsNullOrWhiteSpace(comboBoxHandler.Text) && comboBoxHandler.DroppedDown == true)
        {
            comboBoxHandler.DroppedDown = false;
        }

相关问题