Как я могу изменить значение ячеек в данном столбце при выборе нескольких строк? - PullRequest
1 голос
/ 10 февраля 2020

Я хочу иметь возможность выбрать несколько строк в таблице данных, а затем, если они выбраны, изменить значение в ячейках. У меня есть код:

private void btnSetToReceived_Click(object sender, EventArgs e)
{
    SetToReceived();
}

private void SetToReceived()
{
        this.dgvPod.CurrentCell.Value = "Yes";
}

private void dgvPod_KeyDown(object sender, KeyEventArgs e)
{
    e.Handled = true;
    dgvPod.BeginEdit(true);
    SetToReceived();
}

1 Ответ

2 голосов
/ 10 февраля 2020

Что я получил от вашего вопроса, вы хотите выбрать несколько ячеек, а затем начать печатать, и вы ожидаете, что все выбранные значения ячеек изменятся:

enter image description here

Для этого вы можете обработать событие EditingControlShowing, получить элемент управления редактирования TextBox, обработать его событие TextChanged и обновить текст выбранных ячеек. Например:

private void Form1_Load(object sender, EventArgs e)
{
    dataGridView1.ColumnCount = 4;
    dataGridView1.RowCount = 4;
    TextBox txt = null;
    dataGridView1.EditingControlShowing += (s1, e1) =>
    {
        if (dataGridView1.EditingControl is TextBox)
        {
            if (txt == null)
            {
                txt = (TextBox)dataGridView1.EditingControl;
                txt.TextChanged += (s2, e2) =>
                {
                    foreach (DataGridViewCell cell in dataGridView1.SelectedCells)
                        cell.Value = txt.Text;
                };
            }

        }
    };
}

Код не проверяет, все ли выделенные ячейки находятся в одном столбце, однако в примере показано, как получить текст одновременно с вводом текста, а также как установить значение других выбранных ячеек.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...