Top > プログラミング > .NET Tips> DataGridViewのセルに入力された値が正しいか確かめる

DataGridViewのセルに入力された値が正しいか確かめる」への評価、コメント

評価

良い / 悪い = 22 / 2 (「良い」の割合 = 0.917 , 人気度 = 1.266

評価する

コメント一覧


通常のコメント
万年初歩 2020/09/23 (Wed) 12:02:05
ありがとうございます。
以下のコードで解決しました。

private void dataGridView1_CellParsing(object sender, DataGridViewCellParsingEventArgs e)
{
DataGridView dgv = (DataGridView)sender;

//数量
if (dgv.Columns[e.ColumnIndex].Name == "quantity" && (e.Value == DBNull.Value || e.Value.ToString().Trim() == string.Empty))
{
e.Value = 0m;
e.ParsingApplied = true;
}
}

通常のコメント
匿名 2020/09/23 (Wed) 11:12:00
>入力値が""の場合、値を0にする場合はどうなるのでしょうか。
私も少し躓いたのですが、e.FormattedValueの値はObject型のため、テキストボックスと異なり、型変換エラーが起こりやすいです。
まずisDbNullで0に置き換え、それ以外の場合でも""の場合も0に置き換える、とすると良いと思います。

通常のコメント
万年初歩 2020/09/8 (Tue) 15:14:35
すみません。
入力値が""の場合、値を0にする場合はどうなるのでしょうか。

テキストボックスのVlidatingのようにはいかないようです。

通常のコメント
管理人 2015/03/11 (Wed) 00:19:14
> 編集中のセルにエラー表示する方法ですが、まずEditingControlShowingイベントでDataGridViewTextBoxEditingControl(以降、TB)を捕捉しておいて、エラー表示時には、TBの幅を22ピクセルほど縮めた上で、独自のErrorProviderを使ってTBに対してエラー表示させるというのはだめですかね?

編集中のセルにエラーアイコンを表示する方法のリンクが切れていますね。このリンク先にあった方法は、

https://social.msdn.microsoft.com/Forums/en-US/28d812bb-5f33-46d6-94dd-6a2d1f442a29/displaying-errortext-on-the-current-cell-in-datagridview-control?forum=vblanguage

にある方法と同じと思われます。時間がある時に、リンクを修正し、私もいろいろ試してみたいと思います。ご提案、ありがとうございました。

通常のコメント
匿名 2015/03/10 (Tue) 01:03:56
編集中のセルにエラー表示する方法ですが、まずEditingControlShowingイベントでDataGridViewTextBoxEditingControl(以降、TB)を捕捉しておいて、エラー表示時には、TBの幅を22ピクセルほど縮めた上で、独自のErrorProviderを使ってTBに対してエラー表示させるというのはだめですかね?(TBの編集領域幅が少し狭くなりますが、余白がある場合は簡単でよいと思うのですが)

通常のコメント
管理人 2011/04/26 (Tue) 01:56:39
> //dgv.CancelEdit();
>
> これは、DataGridView1.CancelEdit()では?

DataGridView1でも大丈夫だと思いますが(C#のコードでは駄目なケースも考えられます)、dgvで問題ないはずです。

通常のコメント
cthirase 2011/04/25 (Mon) 11:36:34
//入力した値をキャンセルして元に戻すには、次のようにする
//dgv.CancelEdit();

これは、DataGridView1.CancelEdit()では?

コメントの投稿

[説明]