人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

VisualBasic2005を使っています。

ComboBoxに画像を表示したいと考えていますが、ぜんぜんわかりません。

マイクロソフトに参考になりそうなものがあったのですが、
VisualBasic2005で参照しようとすると変換され、動作はしますが
そもそもツールボックス内にコントロールが表示されません。

http://msdn.microsoft.com/ja-jp/library/cc440873.aspx

おそらくVB.NETとの何らかの違いなのでしょうが、
少し自力で解決するには難しいのでわかる方がいればご助言お願いします。

できるだけ具体的なコードで示していただけると助かります。

よろしくお願いします。

●質問者: VB2005
●カテゴリ:コンピュータ インターネット
✍キーワード:VB.NET コントロール コード ツールボックス マイクロソフト
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● tsukasa57
●35ポイント

こんにちは。

試してみました。VB2005 さんのおっしゃるとおり、VisualBasic 2005 では

http://msdn.microsoft.com/ja-jp/library/cc440873.aspx で示されている DLL はツールボックスに表示できませんでした。しかし VisualBasic 2005 ように変換すれば上記リンクの通りに使用できます。

次の手順で作業して下さい。

  1. ImageComboBoxControl の sln ファイルを VisualBasic 2005 で開きます。すると変換ウィザードが表示されますのでウィザードを実行して下さい。
  2. 変換ウィザードが終了するとビルド出来るようになるのでビルドして下さい。ビルドが終わると ImageComboBoxControl.dll が出来ている(日時が変わっている)はずなので確認して下さい。
  3. VisualBasic 2005 で ImageComboBoxControl のプロジェクトを閉じて新しいプロジェクトを開きます。
  4. [ツールボックス]-[全般タブ]を選んで右クリックを押して[アイテムの選択]を選びます。ダイアログが表示されますから[参照]ボタンを押して先ほどビルドした ImageComboBoxControl.dll を選択します。すると [ツールボックス]-[全般タブ] に[ComboImage]ボタンが追加されます。

あとは http://msdn.microsoft.com/ja-jp/library/cc440873.aspx のチュートリアルの通りです。試してみて下さい。


2 ● kokoro77
●35ポイント

そのURLを参考にしていますが


1.VB2005を起動しフォームにコンボボックスを貼り付けます。

2.貼り付けたコンボボックスを選択し、プロパティのDrawModeをOwnerDrawFixedに変更します。

3.イメージリストを追加します。

4.イメージリストのプロパティのImagesに画像を追加します。

5.Formのロードイベントにコンボボックスの内容を設定します。


 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
 ComboBox1.Items.Add("1行目")
 ComboBox1.Items.Add("2行目")
 ComboBox1.Items.Add("3行目")
 End Sub<BR>

5.コンボボックスのイベントからDrawItemを選択し、以下のコードを記述します。


 Private Sub ComboBox1_DrawItem(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DrawItemEventArgs) Handles ComboBox1.DrawItem
 e.DrawBackground()
 e.DrawFocusRectangle()
 Dim bounds As New Rectangle
 bounds = e.Bounds
 Dim s As String = ComboBox1.Items(e.Index)
 Try
 If (ImageList1.Images.Count <> 0) Then
 ImageList1.Draw(e.Graphics, bounds.Left, bounds.Top, e.Index)
 e.Graphics.DrawString(s, e.Font, New SolidBrush(e.ForeColor), bounds.Left + ImageList1.Images(e.Index).Width, bounds.Top)
 Else
 e.Graphics.DrawString(s, e.Font, New SolidBrush(e.ForeColor), bounds.Left, bounds.Top)
 End If
 Catch ex As Exception
 e.Graphics.DrawString(s, e.Font, New SolidBrush(e.ForeColor), bounds.Left, bounds.Top)
 End Try
 End Sub


これで実行すれば画像表示されます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ