2015-11-14 81 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