DOBON.NET DOBON.NETプログラミング掲示板過去ログ

DataGridViewのセルの入力値が最新入力の1文字のみしか表示されない

環境/言語:[win7,vb.net,Framework3.5]
分類:[.NET]

初めて投稿します。よろしくお願いします。

画面に、コンボボックス1つと、複数のボタンと、dataGridViewを1つ配置した、
マスタメンテの画面を作成しています。
dataGridViewは、DataGridViewCheckBoxColumnを1つ、DataGridViewTextBoxColumnを複数配置しています。
DataGridViewTextBoxColumnは入力可能なセル以外に、読取専用のセルや、非表示のセルもあります。
タブ順は、コンボボックス→複数のボタン→DataGridViewのセルの順です。

このような画面で、DataGridViewの入力可能なセルから、Shift+Tabで、タブ順を逆にたどり、ボタンまで到達。
Tabで、DataGridViewの入力可能なセルまで戻ります。

この状態で、選択しているセルに値を入力していても、入力した値自体が選択された状態(値の背景青色)で、
入力した最新の1文字しか表示されません。
最大入力文字数1に設定して、最新の文字で上書きされてしまったように見えます。
(最大文字数の設定はしていないのですが。。。)
具体的をあげると、値の入っていないセルに以下の入力をします。
@「1」を入力→セルの値は「1」
A「2」を入力→セルの値は「2」 ← ここの値が「12」となってほしい
A「3」を入力→セルの値は「3」 ← ここの値が「123」となってほしい

DataGridViewにレコードが複数ある場合、他レコードの入力可能セルへ一度カーソルを移動させてから、
元に戻ると普段どおりの入力ができるのですが、
レコードが1件しかない場合はこの事象を解決することができず、困っています。

どなたか、解決策や解決へのヒント等ありましたら、教えていただきたいです。
また、不足情報等あれば、おっしゃっていただけるとありがたいです。
■No31146に返信(ichikaさんの記事)
> 画面に、コンボボックス1つと、複数のボタンと、dataGridViewを1つ配置した、
> マスタメンテの画面を作成しています。
> dataGridViewは、DataGridViewCheckBoxColumnを1つ、DataGridViewTextBoxColumnを複数配置しています。
> DataGridViewTextBoxColumnは入力可能なセル以外に、読取専用のセルや、非表示のセルもあります。
> タブ順は、コンボボックス→複数のボタン→DataGridViewのセルの順です。

再現させようと思い、下記のように作成し試してみましたが
再現させることができませんでした。
OSか、VisualStudioのバージョンの違い、操作の違いでしょうか?
そちらではデザインだけ(コード書かない)で再現しますか?

 WinXP、VB.NET、Framework3.5、VisualStudio2008
 コンボボックス1つ配置。
 ボタン3つ配置。
 DataGridView(デフォルト)を1つ配置。
 dataGridViewは、DataGridViewCheckBoxColumnを1つ配置。
 DataGridViewTextBoxColumn(表示)を1つ配置。
 DataGridViewTextBoxColumn(表示、読取専用)を1つ配置。
 DataGridViewTextBoxColumn(非表示)を1つ配置。

DOBON.NET | プログラミング道 | プログラミング掲示板