激凹みから立ち直る方法

コンボボックスのドロップダウンで選択する文字列と選択後の文字列を変更したいです。

ComboBox1.Items.Add("ID : NAME")

Private Sub ComboBox1_Validated(ByVal sender As System.Object, _
ByVal e As System.EventArgs) _
Handles ComboBox1.Validated
ComboBox1.Text = "ID"
End Sub

これでコンボのフォーカスを外せば表示が"ID"になりますが、選択後は"ID : NAME"のままです。
イベント内で別のコントロールにフォーカスを当てようとしても無理でした。

なにか方法はないでしょうか?
ownerdrawで複数列を持たせる方法でやりたいことはできるのですが、
この方法はわけあって避けたいと考えています。

A 回答 (2件)

> 複数の列のパターンで数箇所に使いたいので、カスタムコントロールを用意する。


> また同様のことをDataGridViewComboBoxColumnでもやりたい。
> 私にはこれを行うスキルがないためです。
個人のスキルは適正や努力の範囲なので何とも言い難いけど、
プログラマとして売り物になる商品を作っているなら、
http://dobon.net/vb/dotnet/datagridview/index.html
このあたりのサンプルは見つけているだろうし、
読んで理解すべき事で、スキルがないというのは言い訳に
ならないでしょう。

DataGridViewComboBoxColumn は編集時にセルの大きさに
あわせたComboBoxが前面に表示されて、あたかもセルが
編集できるように見える仕組みですね。
ComboBoxの表示やデータの反映もイベントで検知できます
し、サンプルコードが解説付きである時点で、難しいと
いうほどの改造では無いです。
    • good
    • 0
この回答へのお礼

URLありがとうございます。
こちらはいつも参考にさせて頂いています。

下記サンプルを参考にComboBoxの拡張コントロールをつくることができました。
これを参考にDataGridViewComboBoxColumn にも対応しようと思います。

http://www.bitpower.co.jp/software/details/smp_h …

お礼日時:2010/11/11 02:21

> この方法はわけあって避けたいと考えています。


前提条件つけるなら、その理由も明記してもらわないと
対策が考えられないじゃない?

> コンボボックスのドロップダウンで選択する文字列と選択後の文字列を変更したいです。
タイマーで後からイベント起こして文字列修正すれば?

この回答への補足

> 前提条件つけるなら、その理由も明記してもらわないと
対策が考えられないじゃない?
そうですね。すみません。

複数の列のパターンで数箇所に使いたいので、カスタムコントロールを用意する。
また同様のことをDataGridViewComboBoxColumnでもやりたい。
私にはこれを行うスキルがないためです。

アドバイスありがとうございます。

補足日時:2010/11/10 00:19
    • good
    • 0

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