none
не изменяется состояние DataGridViewCheckBoxCell c первого раза. RRS feed

  • Общие обсуждения

  • В проекте DataGridView привязан к DataTable. Одна из колонок грида явлется DataGridViewCheckBoxColumn. Это единственная редактируемая колонка в гриде. Хотел сделать так чтобы при выборе строки стрелками и нажатии пробела менялось состояние DataGridViewCheckBoxCell выделеной строки. Так вот, при каждом выборе НОВОЙ строки с помощью стрелок, состояние меняется только после 2-х кратного нажатия пробела. После первого нажатия галочка появляется и тут же пропадает (снимается и тут же опять появляется). Если продолжить нажимать пробел на этой же строке то состояние меняется уже после каждого нажатия (нормально), но если выбрать другую строку (именно стрелками), то ситуация повторяется. Всё становится на свои места если строку выбрать кликом левой клавиши мыши. После этого при выборе строк клавишами всё работает нормально (выбор пробелом срабатывает с первого раза). Прошу помощи.

    dgvSpravScraps.DataSource = dt;
    
    private void dgv_KeyPress(object sender, KeyPressEventArgs e)
    {
        if (e.KeyChar == 32) //пробел
        {
            Int32 rowIndex = dgvSpravScraps.CurrentRow.Index;
            Boolean check = (Boolean)dt[rowIndex]["Select"];
            if (!check)
               dt[rowIndex]["Select"] = true;
            else
               dt[rowIndex]["Select"] = false;
         }
    }



    10 сентября 2014 г. 11:43