これは私の前の質問からのフォローアップの質問です。あなたはそれを見つけることができますhere。DataGridViewセルの編集モードを自動的に終了する方法は?
最後に私の前の問題を解決した後、別の問題が発生しました。私はDataGridの新しい行に値を追加するボタンを割り当て、セル全体を編集モードにします。 /または行の終わりまでタブで表示されます(明らかにこれは機能しません)、編集モードを終了します。 私はdataGridView.BeginEdit(true);
を使用して編集モードを開始し、テキストボックスに値を解析できるようにしました(これまでの質問を参照)。したがって、別の値を挿入してボタンを押すと、現在編集モードになっているため、以前に挿入された古い値が新しい値に置き換えられます。 、dataGridView.EndEdit(DataGridViewDataErrorContexts.Commit);
、cell.DataGridView.EndEdit()
およびcell.DataGridView.EndEdit(DataGridViewDataErrorContexts.Commit);
を使用しようとしていましたが、編集モードが終了しないようです:( ボタンを押すと、テキストボックス内の値が最初のテキストボックスの列に挿入されますこれは既に働いていました)その後、編集モードを終了するために他の列をクリックしたり塗りつぶす必要はありませんので、テキストボックスに何も入力しないでボタンを押して停止します。 誰でもこれを解決する方法を知っていますか? EDIT 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);
}
EDIT 2: は、ここに私の前の質問から要求されるように私のコードですので、私はドラッグして、私のWindowsフォームにデータソースからsurat_jalanをドロップします。それは自動的にプロパティ名surat_jalanDataGridView
を持つデータグリッドとなり、データ・ソースは、遅延については申し訳ありませんsurat_jalanBindingSource
あなたのwinformに 'this.Validate'を使用することもできます –
私はすでにGabrielを試しましたが、どちらも動作しません。しかし、とにかくありがとう:D –
なぜあなたはいつもbeginitを呼び出しているときにbegineditを使いますか?あなたは編集モードに入ることなくあなたの価値を設定することができます。編集モードは、ユーザーが入力を入力するためのモードです。 –