imagelistコントロールに大き目の画像
投稿者 ぺぺたろう(旧トマト)  (中学生)
投稿日時
2010/9/15 16:12:49
List(Of Image)に放り込んでいくというのはどうですか?
投稿者 ひでと  (社会人)
投稿日時
2010/9/16 09:06:54
ありがとうございます。
List(Of Image)でインデックスを処理することはできるのですが、この方法だと画像ファイルを別に添付し、それを読み込む処理が必要だと思います。
Imagelistコントロールではデザイン時にイメージを読み込み保持する機能があり、画像ファイルを添付する必要はありません。コントロールのソース自体になんらかのイメージを保持する機能があり、コンパイル時にイメージを描画しているのではないかと思います。
このように、画像ファイルを別に添付する必要が無いのが、魅力なのです。
同じことをやろうとすれば
1.仮に使用するフォームを用意し、に複数のPictreBoxを貼り付けておく。
2.各PictureBoxにデザイン時にイメージを登録。
3.Formのロードイベント時に、Listに各PictureBOxのイメージを追加する。
のようにやれば目的の処理ができるのではないかと思いますが、あまりスマートな方法では無いかと思い、ご相談させていただきます。よろしくお願いします。
List(Of Image)でインデックスを処理することはできるのですが、この方法だと画像ファイルを別に添付し、それを読み込む処理が必要だと思います。
Imagelistコントロールではデザイン時にイメージを読み込み保持する機能があり、画像ファイルを添付する必要はありません。コントロールのソース自体になんらかのイメージを保持する機能があり、コンパイル時にイメージを描画しているのではないかと思います。
このように、画像ファイルを別に添付する必要が無いのが、魅力なのです。
同じことをやろうとすれば
1.仮に使用するフォームを用意し、に複数のPictreBoxを貼り付けておく。
2.各PictureBoxにデザイン時にイメージを登録。
3.Formのロードイベント時に、Listに各PictureBOxのイメージを追加する。
のようにやれば目的の処理ができるのではないかと思いますが、あまりスマートな方法では無いかと思い、ご相談させていただきます。よろしくお願いします。
投稿者 ぺぺたろう  (中学生)
投稿日時
2010/9/16 13:46:30
>List(Of Image)でインデックスを処理することはできるのですが、この方法だと画像ファイルを別に添付し、それを読み込む処理が必要だと思います。
プロジェクトのプロパティで画像をリソースに入れることができるので、コード上からListにリソースを追加してやってください
プロジェクトのプロパティで画像をリソースに入れることができるので、コード上からListにリソースを追加してやってください
list.Add(My.Resource.test)
投稿者 ひでと  (社会人)
投稿日時
2010/9/16 16:05:22
ありがとうございました。
リソース・・・使ったことなかったです。おおっ 感動。
画像ファイルをプロジェクトに追加して、プロジェクトのプロパティでリソースを開き、
文字列がデフォルトだったのでイメージに変更。
追加した画像ファイルをドラッグドロップすればいいのですね。
うまくできそうです。ありがとうございました。
リソース・・・使ったことなかったです。おおっ 感動。
画像ファイルをプロジェクトに追加して、プロジェクトのプロパティでリソースを開き、
文字列がデフォルトだったのでイメージに変更。
追加した画像ファイルをドラッグドロップすればいいのですね。
うまくできそうです。ありがとうございました。
投稿者 やじゅ  (社会人)
投稿日時
2010/9/16 20:40:25
ホントにできるんですか?
画像ファイルを配列に入れて使うんですよ。(笑)
画像ファイルを配列に入れて使うんですよ。(笑)
投稿者 ひでと  (社会人)
投稿日時
2010/9/17 09:15:35
やじゅ様 できましたよ。
formにリスト型の変数作って、form_loadイベントにaddで読み込んでます。
後は今までやっていた、imagelistコントロールの処理をちょっと変更しただけでうまくできました。
ご心配ありがとうございます。
formにリスト型の変数作って、form_loadイベントにaddで読み込んでます。
後は今までやっていた、imagelistコントロールの処理をちょっと変更しただけでうまくできました。
ご心配ありがとうございます。
投稿者 やじゅ  (社会人)
投稿日時
2010/9/17 20:24:57
ADD?(ワロス)
そんなコードは必要ないですよ。
ちゃんとリソースの追加で入れましたか?
ちょっとコードを書いてごらんよ。
そんなコードは必要ないですよ。
ちゃんとリソースの追加で入れましたか?
ちょっとコードを書いてごらんよ。
投稿者 ひでと  (社会人)
投稿日時
2010/9/21 09:20:10
ちょっと書いてみろという事なので抜粋
Public Class 本体
Public il非対称 As New List(Of Image)
Public il対称 As New List(Of Image)
省略
Private Sub 本体_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
il非対称.Clear()
il非対称.Add(My.Resources._1)
il非対称.Add(My.Resources._2)
il非対称.Add(My.Resources._3)
il非対称.Add(My.Resources._4)
il対称.Clear()
il対称.Add(My.Resources._5)
il対称.Add(My.Resources._6)
il対称.Add(My.Resources._7)
il対称.Add(My.Resources._8)
省略
Private Sub b図形回転_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles b図形回転.Click
Static index As Integer
index = index + 1
If Me.cb対称型.Enabled = True Then
If Me.cb対称型.Checked = False Then
If index > Me.il非対称.Count - 1 Then index = 0
Me.pb図形.Image = Me.il非対称(index)
Else
If index > Me.il対称.Count - 1 Then index = 0
Me.pb図形.Image = Me.il対称(index)
End If
Else
If index > Me.il非対称.Count - 1 Then index = 0
Me.pb図形.Image = Me.il非対称(index)
End If
End Sub
Private Sub cb対称型_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles cb対称型.CheckedChanged
If Me.cb対称型.Enabled = True Then
If Me.cb対称型.Checked = False Then
Me.pb図形.Image = Me.il非対称(0)
単品図.pb図形.Image = Me.il非対称(0)
本体端部.pb図形.Image = 本体端部.il非対称.Images(0)
Else
Me.pb図形.Image = Me.il対称(0)
単品図.pb図形.Image = Me.il対称(0)
本体端部.pb図形.Image = 本体端部.il対称.Images(0)
End If
Else
単品図.pb図形.Image = Me.il非対称(0)
本体端部.pb図形.Image = 本体端部.il非対称.Images(0)
End If
End Sub
こんな感じです。
Public Class 本体
Public il非対称 As New List(Of Image)
Public il対称 As New List(Of Image)
省略
Private Sub 本体_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
il非対称.Clear()
il非対称.Add(My.Resources._1)
il非対称.Add(My.Resources._2)
il非対称.Add(My.Resources._3)
il非対称.Add(My.Resources._4)
il対称.Clear()
il対称.Add(My.Resources._5)
il対称.Add(My.Resources._6)
il対称.Add(My.Resources._7)
il対称.Add(My.Resources._8)
省略
Private Sub b図形回転_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles b図形回転.Click
Static index As Integer
index = index + 1
If Me.cb対称型.Enabled = True Then
If Me.cb対称型.Checked = False Then
If index > Me.il非対称.Count - 1 Then index = 0
Me.pb図形.Image = Me.il非対称(index)
Else
If index > Me.il対称.Count - 1 Then index = 0
Me.pb図形.Image = Me.il対称(index)
End If
Else
If index > Me.il非対称.Count - 1 Then index = 0
Me.pb図形.Image = Me.il非対称(index)
End If
End Sub
Private Sub cb対称型_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles cb対称型.CheckedChanged
If Me.cb対称型.Enabled = True Then
If Me.cb対称型.Checked = False Then
Me.pb図形.Image = Me.il非対称(0)
単品図.pb図形.Image = Me.il非対称(0)
本体端部.pb図形.Image = 本体端部.il非対称.Images(0)
Else
Me.pb図形.Image = Me.il対称(0)
単品図.pb図形.Image = Me.il対称(0)
本体端部.pb図形.Image = 本体端部.il対称.Images(0)
End If
Else
単品図.pb図形.Image = Me.il非対称(0)
本体端部.pb図形.Image = 本体端部.il非対称.Images(0)
End If
End Sub
こんな感じです。
imagelistコントロールに画像を入れて使用していますが、256x256のサイズでは使い勝手が悪く、
もう少し大きな画像を使用したいのです。
画像ファイルを複数添付するのでは無く、良い方法はありませんでしょうか?