<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE rss PUBLIC "-//Netscape Communications//DTD RSS 0.91//EN" "http://my.netscape.com/publish/formats/rss-0.91.dtd">
<rss version="0.91">
<channel>
<title>「DataGridViewのセルに入力された値が正しいか確かめる」へのコメント</title>
<link>http://dobon.net/cgi-bin/pc/pc.php?mode=v&amp;id=datagridview%2Fcellvalidating.html</link>
<description>「DataGridViewのセルに入力された値が正しいか確かめる」に投稿されたコメントの一覧</description>
<language>ja</language>
<image>
<url>https://dobon.net/banner/dbs1.gif</url>
<link>http://dobon.net/cgi-bin/pc/pc.php?mode=v&amp;id=datagridview%2Fcellvalidating.html</link>
<title>「DataGridViewのセルに入力された値が正しいか確かめる」へのコメント</title>
<width>88</width>
<height>31</height>
</image>
<item>
<title>通常のコメント</title>
<link>http://dobon.net/cgi-bin/pc/pc.php?mode=v&amp;id=datagridview%2Fcellvalidating.html#11</link>
<description><![CDATA[　SQLServerを使用して、Access 2010 ADPで作成した膨大な会社事務用のアプリケーションをVisual Studio 2022バージョンのDataGridViewへの全面組み換えをやっと決意して奮闘中です。<br>　知識・ノウハウの習得は、もっぱらWeb検索に頼っていますが、当方が必要とする情報がなかなか得られず、毎日、試行錯誤を繰り返していました。<br>　これまで、私が探し求めていたのは正に貴方様のこの記事です。簡潔・明瞭・丁寧で的を得て、大変分かりやすく感激しています。これからも活用させていただきますので、よろしくお願いいたします。　取り急ぎお礼申し上げます。2022/2/16]]></description>
</item>
<item>
<title>通常のコメント</title>
<link>http://dobon.net/cgi-bin/pc/pc.php?mode=v&amp;amp;id=datagridview%2Fcellvalidating.html#10</link>
<description><![CDATA[なんてことは無かったです。<br>本サイトの<br>https://dobon.net/vb/dotnet/datagridview/readonly.html<br>で解決しました。<br>恐れ入ります。ありがとうございました。]]></description>
</item>
<item>
<title>通常のコメント</title>
<link>http://dobon.net/cgi-bin/pc/pc.php?mode=v&amp;amp;id=datagridview%2Fcellvalidating.html#9</link>
<description><![CDATA[またつまづいてしまいました。(C#)<br>e.Cancel = true;<br>についてです。<br><br>誤った入力をし、カーソルキーを右に移動させた場合コミットをキャンセルします。<br>しかし誤った入力をしEnterキーを入れると引き続きRowEnterのイベントが発生してしまいました。<br>しかしRowEnter内ではe.RowIndexは増加されていません。入力セルのRowIndexのままです。<br><br>dataGridView1_RowEnter内ではセルのReadOnlyをColumnごとに設定しています。<br>dgv.Columns[&quot;Column&quot;].ReadOnly = true;<br>が実行されると<br>「現在のセルをコミットできないので、操作を完了できません。」<br>とエラーになります。<br><br>対策としてEnter入力後のRowEnterを回避するのはよくない気がしてます。<br>dgv.Columns[&quot;Column&quot;].ReadOnly = true;はCellEnterに移したほうがいいのか?、または違う方法がいいのかご意見伺いたく投稿させていただきました。<br>宜しくお願いします。]]></description>
</item>
<item>
<title>評価の理由</title>
<link>http://dobon.net/cgi-bin/pc/pc.php?mode=v&amp;amp;id=datagridview%2Fcellvalidating.html#8</link>
<description><![CDATA[評価：良い<br>凡例のコードが実用的で良いヒントになる。]]></description>
</item>
<item>
<title>通常のコメント</title>
<link>http://dobon.net/cgi-bin/pc/pc.php?mode=v&amp;amp;id=datagridview%2Fcellvalidating.html#7</link>
<description><![CDATA[ありがとうございます。<br>以下のコードで解決しました。<br><br> private void dataGridView1_CellParsing(object sender, DataGridViewCellParsingEventArgs e)<br>        {<br>            DataGridView dgv = (DataGridView)sender;<br><br>            //数量<br>            if (dgv.Columns[e.ColumnIndex].Name == &quot;quantity&quot; &amp;&amp; (e.Value == DBNull.Value || e.Value.ToString().Trim() == string.Empty))<br>            {<br>                e.Value = 0m;<br>                e.ParsingApplied = true;<br>            }<br>        }]]></description>
</item>
<item>
<title>通常のコメント</title>
<link>http://dobon.net/cgi-bin/pc/pc.php?mode=v&amp;amp;id=datagridview%2Fcellvalidating.html#6</link>
<description><![CDATA[&gt;入力値が&quot;&quot;の場合、値を0にする場合はどうなるのでしょうか。<br>私も少し躓いたのですが、e.FormattedValueの値はObject型のため、テキストボックスと異なり、型変換エラーが起こりやすいです。<br>まずisDbNullで0に置き換え、それ以外の場合でも&quot;&quot;の場合も0に置き換える、とすると良いと思います。]]></description>
</item>
<item>
<title>通常のコメント</title>
<link>http://dobon.net/cgi-bin/pc/pc.php?mode=v&amp;amp;id=datagridview%2Fcellvalidating.html#5</link>
<description><![CDATA[すみません。<br>入力値が&quot;&quot;の場合、値を0にする場合はどうなるのでしょうか。<br><br>テキストボックスのVlidatingのようにはいかないようです。]]></description>
</item>
<item>
<title>通常のコメント</title>
<link>http://dobon.net/cgi-bin/pc/pc.php?mode=v&amp;amp;id=datagridview%2Fcellvalidating.html#4</link>
<description><![CDATA[&gt; 編集中のセルにエラー表示する方法ですが、まずEditingControlShowingイベントでDataGridViewTextBoxEditingControl（以降、TB)を捕捉しておいて、エラー表示時には、TBの幅を22ピクセルほど縮めた上で、独自のErrorProviderを使ってTBに対してエラー表示させるというのはだめですかね？<br><br>編集中のセルにエラーアイコンを表示する方法のリンクが切れていますね。このリンク先にあった方法は、<br><br>https://social.msdn.microsoft.com/Forums/en-US/28d812bb-5f33-46d6-94dd-6a2d1f442a29/displaying-errortext-on-the-current-cell-in-datagridview-control?forum=vblanguage<br><br>にある方法と同じと思われます。時間がある時に、リンクを修正し、私もいろいろ試してみたいと思います。ご提案、ありがとうございました。]]></description>
</item>
<item>
<title>通常のコメント</title>
<link>http://dobon.net/cgi-bin/pc/pc.php?mode=v&amp;amp;id=datagridview%2Fcellvalidating.html#3</link>
<description><![CDATA[編集中のセルにエラー表示する方法ですが、まずEditingControlShowingイベントでDataGridViewTextBoxEditingControl（以降、TB)を捕捉しておいて、エラー表示時には、TBの幅を22ピクセルほど縮めた上で、独自のErrorProviderを使ってTBに対してエラー表示させるというのはだめですかね？（TBの編集領域幅が少し狭くなりますが、余白がある場合は簡単でよいと思うのですが）]]></description>
</item>
<item>
<title>通常のコメント</title>
<link>http://dobon.net/cgi-bin/pc/pc.php?mode=v&amp;amp;id=datagridview%2Fcellvalidating.html#2</link>
<description><![CDATA[&gt; //dgv.CancelEdit();<br>&gt;<br>&gt; これは、DataGridView1.CancelEdit()では？<br><br>DataGridView1でも大丈夫だと思いますが（C#のコードでは駄目なケースも考えられます）、dgvで問題ないはずです。]]></description>
</item>
<item>
<title>通常のコメント</title>
<link>http://dobon.net/cgi-bin/pc/pc.php?mode=v&amp;amp;id=datagridview%2Fcellvalidating.html#1</link>
<description><![CDATA[//入力した値をキャンセルして元に戻すには、次のようにする<br>//dgv.CancelEdit();<br><br>これは、DataGridView1.CancelEdit()では？]]></description>
</item>
</channel>
</rss>