- ベストアンサー
フレキシブルグリット コンボボックス
いつもお世話になっております。 VB6.0を使用しています。 (1) コンボボックスを用いて従業員(10名)のリストから選べるようになっています。 質問なのですが,フレキシブルグリットのあるセルにコンボボックスを使用することはできませんか? (1,1)のセルに 10の氏名から1つ選んで 格納したいです。 以下のようにすればできるかと思ったのですができませんでした。 よろしく御願いします。 MSFlexGrid1.TextMatrix(1, 1) = Combo1.List(10)
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
よく MsFlexGrid にテキストボックスを貼り付けてグリッド単位での データ入力をするルーチンをよく書いています。 それをコンボボックスに書き換えてみました。 参考になれば幸いです。 --------------------------------------------------------------- Option Explicit Dim r As Integer, c As Integer Private Sub Combo1_Click() MSFlexGrid1.TextMatrix(r, c) = Combo1.Text End Sub Private Sub Combo1_LostFocus() Combo1.Visible = False End Sub Private Sub Form_Load() Combo1.AddItem "伊藤" Combo1.AddItem "鈴木" Combo1.AddItem "佐藤" Combo1.Visible = False End Sub Private Sub MSFlexGrid1_DblClick() c = MSFlexGrid1.Col r = MSFlexGrid1.Row If 関係ないセルがクリックされた時 Then Exit Sub End If MSFlexGrid1.Col = MSFlexGrid1.MouseCol MSFlexGrid1.Row = MSFlexGrid1.MouseRow Combo1.Move MSFlexGrid1.CellLeft + MSFlexGrid1.Left, _ MSFlexGrid1.CellTop + MSFlexGrid1.Top, _ MSFlexGrid1.CellWidth Combo1.Text = MSFlexGrid1.Text Combo1.Visible = True Combo1.SetFocus End Sub
その他の回答 (2)
恐らくVB6をご使用と思います。 フレキシブルグリットは(ヒエラリカルフレキシブルグリットも)、昔から悪魔のコントロールと言われてきたくらい、何でもかんでも自分で処理を書く必要のあるコントロールです。たぶん#1さんの方法が、最も手っ取り早いと思います。 参考ですが、.NetのDataGridなら、お望みの事がたぶん可能です。
- OldBoy65
- ベストアンサー率60% (3/5)
hirokiさんのご要望のようにスマートにできるとは思えませんが、そのセルにFocusを得たときに、Compoboxをそのセルの隣にでも表示させ、選択されたItmeをそのセルに入れてあげれば、目的は果たせるかと思いますが。compoboxが不要のセルの時はcompoboxを非表示にしておいてあげると親切かも。
お礼
回答有難うございます。 考え方がわかりました。
お礼
大変参考になりました。 有難うございます。