это дополнительный вопрос из моего предыдущего.Вы можете найти его здесь .
У меня возникла еще одна проблема после окончательного решения моей предыдущей проблемы: когда я назначаю кнопку для добавления значения в новую строку в DataGrid, вся ячейка будетв режиме редактирования, пока я не нажму на другую ячейку и не заполню ее и / или не добавлю вкладку до конца строки (ну, по-видимому, эта не работает), тогда он завершит режим редактирования.Я использую dataGridView.BeginEdit(true);
, чтобы начать режим редактирования, чтобы я мог разобрать значение в текстовое поле (см. Мой предыдущий вопрос).Поэтому, если я вставлю другое значение и нажму кнопку, новое значение заменит старое значение, которое было вставлено ранее, потому что оно в настоящее время все еще находится в режиме редактирования.Я пытался использовать dataGridView.EndEdit();
, dataGridView.EndEdit(DataGridViewDataErrorContexts.Commit);
, cell.DataGridView.EndEdit()
и cell.DataGridView.EndEdit(DataGridViewDataErrorContexts.Commit);
, но, видимо, это не завершает режим редактирования :( Что я хотел, так это когда я нажимаю кнопку, значение внутри текстового поля будет вставленов первый столбец текстового поля (этот уже работал). Тогда мне не нужно щелкать или заполнять другой столбец, чтобы завершить режим редактирования. Поэтому я просто наберу что-нибудь в текстовое поле и нажимаю кнопку только до тех пор, пока не захочучтобы остановить. После этого я начинаю заполнять другой столбец. Кто-нибудь знает, как решить эту проблему? РЕДАКТИРОВАТЬ 1: вы видите разницу? посмотрите на красный круг, верхний в настоящее время находится в режиме редактирования(потому что у него есть * после стрелки). нижний не находится в режиме редактирования (я сделал это вручную, выбрав элемент из выпадающего списка). Вот мой код в соответствии с моим предыдущим вопросом:
private void button1_Click(object sender, EventArgs e)
{
this.surat_jalanDataGridView.AllowUserToAddRows = true;
string tokNum = this.textBox1.Text;
if (this.textBox1.Text != "")
{
foreach (DataGridViewRow sjRow in this.surat_jalanDataGridView.Rows)
{
int RowIndex = surat_jalanDataGridView.RowCount - 1;
DataGridViewRow R = surat_jalanDataGridView.Rows[RowIndex];
DataTable table = new DataTable();
DataRow newRow = table.NewRow();
table.Rows.Add(newRow);
DataGridViewCell cell = R.Cells[2];
this.surat_jalanDataGridView.CurrentCell = cell;
this.surat_jalanDataGridView.BeginEdit(true);
R.Cells[2].Value = tokNum;
cell.DataGridView.EndEdit(DataGridViewDataErrorContexts.Commit);
}
}
this.surat_jalanDataGridView.EndEdit(DataGridViewDataErrorContexts.Commit);
}
РЕДАКТИРОВАТЬ 2: Итак, я перетаскиваю surat_jalan из источников данных в мою форму окна, затем он автоматически становится сеткой данных с именем свойства surat_jalanDataGridView
и даннымиЭто surat_jalanBindingSource