关于GDI+中的矩形填充,矩形左上角起始坐标无法正确定位!!
为什么设置500,200的起始坐标就不能画出我想要的矩形呢?不解啊? gdi+ 图形
[解决办法]
这个跟语句写的位置有点关系,至于为何有如此关系,得去听微软解释,估计跟函数设计有关.
而与逻辑无关,把语句修改如下测试就知道:
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Me.CreateGraphics().FillRectangle(New SolidBrush(Color.FromArgb(0, 255, 0)), New Rectangle(280, 200, 20, 50))
Me.CreateGraphics().FillRectangle(New SolidBrush(Color.FromArgb(0, 255, 0)), New Rectangle(500, 200, 20, 50))
Me.Width = 1024
Me.Height = 500
End Sub
End Class
透过以上实验,可以得知Me.CreateGraphics()先会获取原窗体的大小进行绘制,第二次才按指定大小进行绘制,以上代码点击2次按钮效果是不同的,原因明显可知.
至于代码优化问题,如果有重用的代码可优化提取出来.
[解决办法]
晕!
许多代码必须放到 Form_Load 中去执行的。提前去执行,当然就会取得错误的环境数据。这个希望你自己就能想明白。