2016-04-12 12 views
1

私はvb.netの3 * 3マトリックスに配置された9つのボタンを持っています。vb.netの2つのボタンの間に線を引く方法は?

btn1 btn2  btn3 
btn4 btn5  btn6 
btn7 btn8  btn9 

と仮定、私はその後、btn6するbtn3するBTN2しbtn3して、行がBTN1から引き出されるべきbtn6の最後のクリックするだけで、その後BTN2ために私のマウスを移動BTN1をクリックした場合。このよう

btn1 btn2 btn3 

btn4 btn5 btn6 
     |  | 
btn7 btn8----btn9 

btn1----btn2----btn3 
       | 
btn4 btn5 btn6 

btn7 btn8 btn9 

と仮定、私は最初のbtn6をクリックした場合は、この方法を描画する必要がある行、その後BTN2に私btn5するbtn8するbtn9するためにマウスと最後のクリックを移動

このような線を描くにはどうすればよいですか? アイデア

+0

カスタムコントロール、ペイントイベントの処理、変数への情報の保存など –

+0

水平線と垂直線のみに制限していますか?例えば、あなたはbtn1からbtn5へ一回の移動で行くことができますか? –

+0

はい。私たちはbtn1からbtn5からbtn7のように斜めに行くこともできます。 –

答えて

0

Paintイベントでこれを行う必要があります。フォームに追加するか、ピクチャボックスを追加してイベントを追加します。 オペレータがマウスをドラッグする数値「キーパッド」を提供することは目的ですか?この場合は、画像ボックスを追加し、画像ボックスのペイントイベント内に「ボタン」を描画します。こうすることで、「ボタン」の位置を保存し、コード内でmouseDownおよびmouseMoveイベントをキャプチャして、マウスがクリックされて移動されたボタンを確認することができます。 linesを描画するには、ExamplesDrawLine(pens.black、x1、y1、x2、y2)関数を使用します。 フォーム上で行う場合は、ボタンの位置を知り、その間を描画する必要があります。実行時にプログラムによって取得できます。

Private Sub Form1_Paint(sender As Object, e as PaintEventArgs) Handles Me.Paint 
    Dim X1 as Integer = Button1.Location.X + Button1.Width /2 
    Dim Y1 as Integer = Button1.Location.Y + Button1.Height/2 
    Dim X2 as Integer = Button2.Location.X + Button2.Width /2 
    Dim Y2 as Integer = Button2.location.Y + Button2.Height/2 
    Dim X3 as Integer = Button3.Location.X + Button3.Width /2 
    Dim Y3 as Integer = Button3.location.Y + Button3.Height/2 
    Dim X4 as Integer = Button4.Location.X + Button4.Width /2 
    Dim Y4 as Integer = Button4.location.Y + Button4.Height/2 
    Dim X5 as Integer = Button5.Location.X + Button5.Width /2 
    Dim Y5 as Integer = Button5.location.Y + Button5.Height/2 
    Dim X6 as Integer = Button6.Location.X + Button6.Width /2 
    Dim Y6 as Integer = Button6.location.Y + Button6.Height/2 
    Dim X7 as Integer = Button7.Location.X + Button7.Width /2 
    Dim Y7 as Integer = Button7.location.Y + Button7.Height/2 
    Dim X8 as Integer = Button8.Location.X + Button8.Width /2 
    Dim Y8 as Integer = Button8.location.Y + Button8.Height/2 
    Dim X9 as Integer = Button9.Location.X + Button9.Width /2 
    Dim Y9 as Integer = Button9.location.Y + Button9.Height/2 
    e.Graphics.DrawLine(Pens.Black, X1, Y1, X2, Y2) 
    e.Graphics.DrawLine(Pens.Black, X2, Y2, X3, Y3) 
    e.Graphics.DrawLine(Pens.Black, X3, Y3, X6, Y6) 
End Sub 
関連する問題