none
Событие на изменение ячейки DVG RRS feed

  • Вопрос

  • Здравствуйте. VS2010, C++/CLR Windows Forms Application
    У меня есть DataGridView, нужно следующее(входишь в режим редактиварония ячейки, вводишь символы, жмешь Enter, получаешь MessageBox  с новым значением)

    this->dataGridView1->EditingControlShowing += gcnew System::Windows::Forms::DataGridViewEditingControlShowingEventHandler(this, &Form1::dataGridView1_EditingControlShowing);
    Это событие вызывается, когда вхожу в режим редактирования ячейки DVG.
    private: System::Void dataGridView1_EditingControlShowing(System::Object^ sender, System::Windows::Forms::DataGridViewEditingControlShowingEventArgs^ e)
    		 {
    			 TextBox^ txtbx = (TextBox^)e->Control;
    			 if (txtbx != nullptr)
    			 {
    				 txtbx->KeyDown -= gcnew System::Windows::Forms::KeyEventHandler(this, &Form1::txtbx_KeyPressed);
    				 txtbx->KeyDown += gcnew System::Windows::Forms::KeyEventHandler(this, &Form1::txtbx_KeyPressed);
    			 }
    		 }
    Так, вошли в режим редактирования, теперь нужно поймать нажатие кнопки Enter, т.е. выхода из режима редактирования ячейки.
    private: System::Void txtbx_KeyPressed(System::Object^ sender, System::Windows::Forms::KeyEventArgs^ e)
    		 {
    			 if (e->KeyCode == System::Windows::Forms::Keys::Enter)
    			 {
    				 TextBox^ txtbx = (TextBox^)sender;
    				 MessageBox::Show(txtbx->Text);
    			 }
    		 }
    Ну и собсна вот, пытаюсь поймать Enter при вводе нового значения в ячейку.
    НО, что происходит в дебаггере:
    -Вхожу в режим редактирования ячейки(ОК)
    -Начинаю вводить символы, и при вводе каждого символа происходит проверка "а не Enter ли я нажал" (ОК)
    -Когда нажимаю Enter, то режим редактирования ячейки закрывается и все. т.е. программа просто переходит в изначальное состояние.
    Можно ли исправить ситуацию? И при выходе из события сделать MessageBox ?
    17 апреля 2013 г. 21:49

Ответы