如题,我需要显示如附件图片那样的矩阵图案,每一个小格里面的数字可以认为是一个二维数组中的一个元素,另外,我需要双击某个位置的的时候,能够获得当前位置的坐标,不知用什么控件来实现呢?能否给个简单试例?
多谢多谢....
------解决思路----------------------
1、要图片这样的应该是没有现成控件给你用
2、如果图片的内容要求简单一点 FORM 就够用了
3、画上去很简单,全国VB2级总考
4、想知道坐标,问 FORM的 鼠标事件 就可以
请楼下 评阅 打分
------解决思路----------------------
Public Class Form1
Private Const GRID_SIZE As Integer = 16
Private lastLocation As Point
Private Sub Form1_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.DoubleClick
Dim x As Integer = Me.lastLocation.X \ GRID_SIZE
Dim y As Integer = Me.lastLocation.Y \ GRID_SIZE
If (x < 10) AndAlso (y < 10) Then
MessageBox.Show(String.Format("({0},{1})", x, y))
End If
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.BackColor = Color.White
End Sub
Private Sub Form1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseDown
Me.lastLocation = e.Location
End Sub
Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint
Dim ft As New Font("Consolas", 12, FontStyle.Regular, GraphicsUnit.Pixel)
Dim blackPen As New Pen(Color.Black)
e.Graphics.DrawLine(blackPen, 0, 0, GRID_SIZE * 10, 0)
e.Graphics.DrawLine(blackPen, GRID_SIZE * 10, 0, GRID_SIZE * 10, GRID_SIZE * 10)
e.Graphics.DrawLine(blackPen, GRID_SIZE * 10, GRID_SIZE * 10, 0, GRID_SIZE * 10)
e.Graphics.DrawLine(blackPen, 0, GRID_SIZE * 10, 0, 0)
For x As Integer = 0 To 9
For y As Integer = 0 To 9
Dim rc As New RectangleF(x * GRID_SIZE + 1, y * GRID_SIZE + 1, GRID_SIZE - 2, GRID_SIZE - 2)
e.Graphics.FillRectangle(Brushes.Cyan, rc)
e.Graphics.DrawString("1", ft, Brushes.Black, rc.Location)
Next
Next
End Sub
End Class