🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Windows Forms

Windows Forms(WinForms)はMicrosoft .NET フレームワークに含まれる視覚的なアプリケーションのプログラミングインターフェイス(API)です。WinFormsは管理されているコードの既存のWindowsのAPIをラップすることで元のMicrosoft Windowsのインターフェイスのエレメントにアクセスすることができます。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

Q&A

解決済

1回答

1158閲覧

自作コントロールフォームにイメージリストを実装したい

tenka

総合スコア6

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Windows Forms

Windows Forms(WinForms)はMicrosoft .NET フレームワークに含まれる視覚的なアプリケーションのプログラミングインターフェイス(API)です。WinFormsは管理されているコードの既存のWindowsのAPIをラップすることで元のMicrosoft Windowsのインターフェイスのエレメントにアクセスすることができます。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

0グッド

0クリップ

投稿2019/11/01 09:26

現在データグリッドビューを継承した自作コントロールを作成しています。

データグリッドビューはカラムの種類として画像が使用可能ですがコントロールとして提供するに当たりイメージリストのような感じで画像をコレクションとして持たせる事が出来ればと思い以下の方法を試しました。

Imports System.Drawing Imports System.Windows.Forms Public Class TestControl Inherits DataGridView 'case1. Public Property cell_Images As New List(Of Bitmap) 'case2. Public Property cell_image2 As ImageList.ImageCollection ’以下メソッドが続きます

コントロール中上記のようにプロパティにしてビルドして他プロジェクトのFormにTestCOntrolをフォームのデザイナ画面フォーム上に貼り付けました。

その結果

1の場合プロパティを選択するとイメージコレクションエディターが起動(imagelistコントロールのと同様)してイメージの選択は可能ですが洗濯結果が保存されません。
2の場合はプロパティを選択するとVisualStudioがフリーズしてしまいます。

どなたか解決方法をご存じの方助けていただけませんでしょうか。
よろしくお願いします。

仕様環境はwindows10 VSCommunity2019 .NetFrameWork4.6です。

その他必要な情報などございましたらご指摘下さい。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

1の場合

VB

1Imports System.Drawing 2Imports System.Windows.Forms 3Imports System.ComponentModel 4 5Public Class TestControl 6 Inherits DataGridView 7 8 Private _cell_Images As List(Of BitmapListItem) 9 10 <DesignerSerializationVisibility(DesignerSerializationVisibility.Content)> 11 Public ReadOnly Property cell_Images As List(Of BitmapListItem) 12 Get 13 If _cell_Images Is Nothing Then 14 _cell_Images = New List(Of BitmapListItem)() 15 End If 16 Return _cell_Images 17 End Get 18 End Property 19 20End Class 21 22Public Class BitmapListItem 23 Public Property Bitmap As Bitmap 24End Class

2の場合は ImageList.ImageCollection のコンストラクタが公開されていないので無理っぽいですね。

投稿2019/11/01 10:37

KOZ6.0

総合スコア2707

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tenka

2019/11/01 11:03

早速の回答ありがとうございました。 頂いたコードそのままで期待通りの動作を致しました。 完全に理解するまで少し時間がかかりますが取り急ぎご報告させて頂きます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問