vb.net のフォームに 48x48 の解像度でアイコンを表示するにはどうすればよいですか? imagelist を使用して見ましたが、コードを使用してリストに追加した画像を表示する方法と、フォーム上の座標を指定する方法がわかりません。私はいくつかのグーグル検索を行いましたが、私が知る必要があることを実際に示している例はありません.
20011 次
4 に答える
7
ImageListは、アルファ透明度をサポートする画像形式がある場合は理想的ではありません(少なくとも、以前はそうでした。最近はあまり使用していませんでした)。そのため、ディスク上のファイルからアイコンをロードするか、リソースから。ディスクからロードする場合は、次の方法を使用できます。
' Function for loading the icon from disk in 48x48 size '
Private Function LoadIconFromFile(ByVal fileName As String) As Icon
Return New Icon(fileName, New Size(48, 48))
End Function
' code for loading the icon into a PictureBox '
Dim theIcon As Icon = LoadIconFromFile("C:\path\file.ico")
pbIcon.Image = theIcon.ToBitmap()
theIcon.Dispose()
' code for drawing the icon on the form, at x=20, y=20 '
Dim g As Graphics = Me.CreateGraphics()
Dim theIcon As Icon = LoadIconFromFile("C:\path\file.ico")
g.DrawIcon(theIcon, 20, 20)
g.Dispose()
theIcon.Dispose()
更新:代わりに、アセンブリに埋め込まれたリソースとしてアイコンを使用する場合は、LoadIconFromFileメソッドを変更して、代わりに次のようにすることができます。
Private Function LoadIconFromFile(ByVal fileName As String) As Icon
Dim result As Icon
Dim assembly As System.Reflection.Assembly = Me.GetType().Assembly
Dim stream As System.IO.Stream = assembly.GetManifestResourceStream((assembly.GetName().Name & ".file.ico"))
result = New Icon(stream, New Size(48, 48))
stream.Dispose()
Return result
End Function
于 2009-05-27T07:14:09.857 に答える
1
画像をフォームに配置するための画像ボックスコントロールが必要です。
次に、Imageプロパティを、ディスク上のファイル、画像リスト、またはリソースファイルからの画像など、表示する画像に設定できます。
pctという画像ボックスがあると仮定します。
pct.Image = Image.FromFile("c:\Image_Name.jpg") 'file on disk
また
pct.Image = My.Resources.Image_Name 'project resources
また
pct.Image = imagelist.image(0) 'imagelist
于 2009-05-27T07:00:05.183 に答える
0
ラベルコントロールを使用して同じことを行うことができます。ピクチャーボックスコントロールの画像の上にドットを描くために使用しました。PictureBoxを使用するよりもオーバーヘッドが少ない場合があります。
Dim label As Label = New Label()
label.Size = My.Resources.DefectDot.Size
label.Image = My.Resources.DefectDot ' Already an image so don't need ToBitmap
label.Location = New Point(40, 40)
DefectPictureBox.Controls.Add(label)
これを行うには、OnPaintメソッドを使用するのが最善の方法かもしれません。
Private Sub DefectPictureBox_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles DefectPictureBox.Paint
e.Graphics.DrawIcon(My.Resources.MyDot, 20, 20)
End Sub
于 2012-09-27T20:03:43.393 に答える
0
Me.Icon = Icon.FromHandle(DirectCast(ImgLs_ICONS.Images(0), Bitmap).GetHicon())
于 2011-05-31T11:41:16.933 に答える