アプリ版:「スタンプのみでお礼する」機能のリリースについて

VB2005です。
DataGridViewでコンボボックスを作成してあります。
コンボボックスのDataSourceを指定した場合、
コンボボックスにカーソルが移ったときに、
1行目はDataSourceで指定したデータの1行目の値
(2行目以降は前の行で選択した値)が表示されが表示されてしまいます。
その値を利用したい場合、再度コンボボックスで選択しなおさないと
有効になりません。それならば、カーソルが移ったときも空白のままでは
いられないのでしょうか?

コンボボックスのDataSourceを指定しないで、
Itemsに値を設定したときには、カーソルが移ったときも値が
表示されないで空白のままです。このような設定にしたいのですが。
DataSourceをしてしたときには無理なのでしょうか?

よろしくお願いいたします。

A 回答 (2件)

お世話になります。



DataGridView の EditMode を EditOnEnter にしている場合は
確かにそのような動きになりますね。
これはこういう仕様なのだと思います。

なので回避するとしたら、バインドするデータソースの先頭に空白のデータを突っ込んでおくか、
DataGridView の EditMode を EditOnEnter でないものにするか、
どちらかしか方法がないと思います。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
仕様ですか。
ではあきらめるしかないですね。

お礼日時:2007/08/27 09:01

お世話になります。



Windows Vista および XP で動作確認したところ、
バインドしていてもカーソル移動が発生するような特に
1 行目が表示されませんでした。
右側の「V」をクリックした時の話でしょうか。

以下のようなコードでバインドした DataGridViewComboBox に
無理やり Form の Load イベントで DisplayIndex に -1 を入れてみましたが実行時に例外(System.ArgumentOutOfRangeException)が発生してしまいました。

Dim ccol As DataGridViewComboBoxColumn = DirectCast(Me.DataGridView1.Columns(0), DataGridViewComboBoxColumn)
ccol.DisplayIndex = -1

MSDN をみてもそれらしいプロパティやメソッドが見つからなかったのでできないのかもしれません。
http://msdn2.microsoft.com/ja-jp/library/system. …

この回答への補足

ありがとうございます。試していただけたのですか?
私の環境はWindows2000なのですが、
右側の「V」をクリックしなくても
カーソルが位置づいたときに発生してしまいます。

WindowsXPで試してみます。

補足日時:2007/08/24 09:11
    • good
    • 0
この回答へのお礼

すみません。
補足入力が出来ないので、ここに記述させていただきます。

大事なことを書き忘れていました。
DatagridViewのEditModeを変更してあります。
EditMode=EditOnEnter

やはりXPでやってもカーソルが位置づいたときには
データが表示されてしまいます。

EditModeがdefaultのEditOnKeystrokeOrF2の場合には
表示されませんでした。
EditMode=EditOnEnterでは無理なのでしょうか?

お礼日時:2007/08/24 09:41

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています