2012-07-30 62 views
0

如何調整Picturebox的大小,以便在圖像大小小於監視器大小時顯示完整圖像!我寫了一個代碼,無法調整(但仍發佈代碼)!上的一個按鈕加載圖像之前調整PictureBox的大小以匹配圖像大小

代碼點擊

Dim bmp As Bitmap 
bmp = New Bitmap(path) 
If bmp.Width < picBox.Image.Width Then picBox.Width = bmp.Width : If bmp.Height < picBox.Image.Height Then picBox.Height = bmp.Height 
picBox.Invalidate() : picBox.Refresh() 
'picBox.SetBounds(x,y,width,height) 

代碼不會調整PictureBox的,它只是毫髮無損!

編輯

形式具有picBox和組框中只[塢啓用]控制。

bmp = New Bitmap(dlgOpen.FileName) 
picBox.SizeMode = PictureBoxSizeMode.Normal 
Dim w As Integer = picBox.ClientSize.Width 
Dim h As Integer = picBox.ClientSize.Height 
If bmp.Width > w Then 
      w = bmp.Width 
End If 
If bmp.Height > h Then 
      h = bmp.Height 
End If 
If w > Me.Width - grpBox.Width Then 
      w = Me.Width - grpBox.Width 
End If 
If h > grpBox.Height Then 
      h = grpBox.Height 
End If 
picBox.ClientSize = New Size(w, h) 
picBox.ImageLocation = dlgOpen.FileName 

此代碼不能重新大小的圖片框或者

+0

該代碼不起作用?它不會調整大小嗎?它是否調整到錯誤的大小?太大?太小?在調整大小之後它不能正確重繪嗎? – 2012-07-30 15:57:08

+0

@SteveDog更新了問題! – Sourav 2012-07-30 16:02:36

回答

0

圖片框可以調整大小加載圖像,它是隻讀的,沒有效果之後纔出現只有

3

在.NET中,有個Public Enumeration PictureBoxSizeMode,允許您更改圖片框如何處理不同尺寸的圖片:

  • 正常
  • StretchImage
  • 自動調整大小
  • CenterImage
  • 放大

你可以s通過.SizeMode屬性爲當前PictureBox添加它。 AutoSize可能是你在找什麼。如果它大於窗口或框架,則必須在PictureBox.Resize事件中處理此事件,以調整窗口大小或重新縮放圖像。

因此,它可能是這樣的:

Dim bmp As Bitmap 
bmp = New Bitmap(path) 
picBox.SizeMode = PictureBoxSizeMode.AutoResize 
picBox.Image = bmp 
+0

如果圖像大於顯示器尺寸會怎樣? – Sourav 2012-07-30 16:00:10

+0

**如果bmp.Height Sourav 2012-07-30 16:11:00

+0

嘗試在加載新圖片之前更改設置。 – Nick 2012-07-30 16:13:35

0
Dim bmp As New Bitmap(path) 
PictureBox1.SizeMode = PictureBoxSizeMode.Normal 
Dim w As Integer = PictureBox1.ClientSize.Width 
Dim h As Integer = PictureBox1.ClientSize.Height 
If bmp.Width > w Then 
    w = bmp.Width 
End If 
If bmp.Height > h Then 
    h = bmp.Height 
End If 
If w > maxWidth Then 
    w = maxWidth 
End If 
If h > maxHeight Then 
    h = maxHeight 
End If 
PictureBox1.ClientSize = New Size(w, h) 
PictureBox1.Image = bmp 
+0

沒有影響,窗體只有一個可停靠的控件[不是圖片框] – Sourav 2012-07-30 16:13:25