none
DataGridView ввод данных без enter RRS feed

Ответы

  • Например так:

        public Form1()
        {
          InitializeComponent();
    
          this.dataGridView1.CellBeginEdit += new DataGridViewCellCancelEventHandler(this.dataGridView1_CellBeginEdit);
          this.dataGridView1.KeyPress += new KeyPressEventHandler(this.dataGridView1_KeyPress);
        }
    
        private void dataGridView1_KeyPress(object sender, KeyPressEventArgs e)
        {
          if (dataGridView1.CurrentCell.ColumnIndex == 1) // проверяем тот ли столбец
          {
            if (Char.IsDigit(e.KeyChar)) // проверяем, что символ является числом
            {
              dataGridView1.CurrentCell.Value = e.KeyChar;
              dataGridView1.CurrentCell = dataGridView1[dataGridView1.CurrentCell.ColumnIndex + 1, dataGridView1.CurrentCell.RowIndex]; // сдвиг вправо
              //dataGridView1.CurrentCell = dataGridView1[dataGridView1.CurrentCell.ColumnIndex, dataGridView1.CurrentCell.RowIndex + 1]; // сдвиг вниз
            }
          }
        }
    
        private void dataGridView1_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e)
        {
          if (dataGridView1.CurrentCell.ColumnIndex == 1) // проверяем тот ли столбец
            e.Cancel = true;
        }

    • Помечено в качестве ответа Abolmasov Dmitry 23 ноября 2010 г. 10:07
    19 ноября 2010 г. 17:39