2015-11-14 54 views
-1

我試圖在運行時將圖片框添加到我的表格中,但每次,圖片框都會以15 x 15像素的形式出現,即使我已更改大小。這是在picturebox中添加的方法。它位於一個類中,Img屬性指的是已經添加的PNG文件。Picturebox的大小錯誤

Public Sub Draw(_Position As Point) 
    Dim pb As New PictureBox() 
    pb.SizeMode = PictureBoxSizeMode.AutoSize 
    pb.Width = 240 
    pb.Height = 336 
    pb.Top = 10 
    pb.Left = 10 
    pb.Image = Img 
    CardProgram.Controls.Add(pb) 
End Sub 

當我運行程序,但是,它出來是這樣的:

Derp

編輯2:我已經改變了尺寸爲原始圖像大小,但它仍然是低分辨率:

enter image description here

任何想法如何,我能得到這個圖像正確顯示?

+0

取決於紙牌遊戲,當您將紙牌分配給紙牌時,更容易切換可見狀態 – Plutonix

+0

因此,您不喜歡PictureBoxSizeMode.AutoSize。那就不要使用它。不是很多用戶都喜歡玩15x15像素卡圖像的紙牌遊戲。 –

+0

您的評論讓我困惑,@Hans。我什麼時候說過不喜歡PBSM.Autosize?我試過包括和不包括它,它不會改變。我顯然不希望圖像是15x15,這正是我想要解決的問題。我真的誤解了你的評論嗎? – Lou

回答

0

現在工作。出於某種原因,當我將圖像上傳到ImageList時,它們被存儲爲16x16圖像。所以我刪除並重新上傳它們,然後將ImageList的ImageSize屬性更改爲正確的尺寸。現在,該代碼如下所示:

Public Sub Draw(_Position As Point) 
    Dim pb As New PictureBox() 
    CardProgram.Controls.Add(pb) 
    pb.Top = 10 
    pb.Left = 10 
    pb.Image = Img 
    pb.SizeMode = PictureBoxSizeMode.StretchImage 
    pb.Size = pb.Image.Size 
End Sub 

enter image description here

感謝您的幫助!

0

改變你的代碼如下,我希望它能工作。你先給PB設置大小然後再設置大小

Public Sub Draw(_Position As Point) 
     Dim pb As New PictureBox() 
     CardProgram.Controls.Add(pb) 
     pb.SizeMode =  PictureBoxSizeMode.AutoSize 
     pb.Width = 240 
     pb.Height = 336 
     pb.Top = 10 
     pb.Left = 10 
     pb.Image = Img 

    End Sub 
+0

尺寸仍然相同:/ – Lou