我的代碼如下:
Private Sub mControl_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtfw.TextChanged,
txtfh.TextChanged, txts.TextChanged, txtdw.TextChanged, txtdh.TextChanged, txtSD.TextChanged, txtWT.TextChanged, txtER.TextChanged, txtSBD.TextChanged
'Show Picture C
Dim fw, fh, d, dw, dh As Single
fw = Val(txtfw.Text)
fh = Val(txtfh.Text)
d = Val(txts.Text)
dw = Val(txtdw.Text)
dh = Val(txtdh.Text)
picP.CreateGraphics.Clear(Color.White)
picP.CreateGraphics.FillRectangle(Brushes.Blue, d, 0, dw, dh)
picP.CreateGraphics.FillRectangle(Brushes.Gray, 0, dh, fw, dh)
End Sub
這就出現了一個問題,如果輸入的值過小圖片在左上角如圖1所示。

圖1
uj5u.com熱心網友回復:
Dim fw, fh, d, dw, dh As Single
fw = Val(txtfw.Text)
fh = Val(txtfh.Text)
d = Val(txts.Text)
dw = Val(txtdw.Text)
dh = Val(txtdh.Text)
Dim gw As Single = Math.Max(d + dw, fw) '圖片寬'
Dim gh As Single = dh + fh '圖片高'
Dim r As Single = Math.Min(picP.Width / gw, picP.Height / gh) '縮放比例'
picP.CreateGraphics.Clear(Color.White)
picP.CreateGraphics.FillRectangle(Brushes.Blue, d * r, 0, dw * r, dh * r)
picP.CreateGraphics.FillRectangle(Brushes.Gray, 0, dh * r, fw * r, dh * r)
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/102512.html
標籤:VB基礎類
