2017-11-15 9 views
-1

画像ボックスをクリックすると、ユーザーは画像の領域をクリックして何かを行うことができるようになります。私はこれを検索して検索し、ターゲットまたは地域に四角形が必要であるという結論に至りました。私は実際に地図上に表示されているアイテムを単純化したいと思っています。ユーザーがクリックしてアクションを行うだけの場所です。画像ボックス内にクリック可能なボックスを追加するC#

地図の上に地図が変更されます。地図が変更される場合は、ボックスを別の場所に変更する必要があります。以下は私が思いついたものであり、うまくいかないものです。私は他の方法にも開いています。

public Rectangle Location1; 
    public Rectangle Location2; 

    public String CharacterLocation == "WorldMap"; 

private void GenerateRegions() 
    { 
     Pen blankPen = new Pen(Color.Transparent, 3); 

     if (CharacterLocation == "WorldMap") 
     { 
      Rectangle[] rects = 
     { 
      Location1 = new Rectangle(100, 200, 250, 50), 
      Location2 = new Rectangle(50, 100, 250, 50) 

     }; 

      MapBox.CreateGraphics().DrawRectangles(blankPen, rects); 
     } 
    } 
    private void MapBox_MouseDown(object sender, MouseEventArgs e) 
    { 
     if (Location1.Contains(e.Location)) 
     { 

     } 
    } 
+0

[それは働いていないのですか?](http://idownvotedbecau.se/itsnotworking/)あなたがデバッグするときにどうなりますか? :) – john

+0

私はペンを黒に変えて見えるようにしましたが、長方形は見えません。 – Morrg

+0

PictureBoxのPaintイベントを見たいと思うかもしれません。副次的なこととして、私はそれがあなたの問題だとは決して考えなかったでしょう。 – john

答えて

0

OKこれが私のためになっています。その四角形を間違った場所に描いていますが、その原因は画像がズームされていると思います。

 private void GenerateRegions() 
    { 

     MapBox.Invalidate(); 
     Pen blankPen = new Pen(Color.Transparent, 3); 
     Console.WriteLine(CharacterLocation); 

     if (CharacterLocation == "WorldMap") 
     { 
      Console.WriteLine(CharacterLocation); 

      Rectangle[] rects = 
     { 
      Location1 = new Rectangle(64, 25, 20, 20), 
      Location2 = new Rectangle(68, 70, 20, 20) 

     }; 

      using (var g = Graphics.FromImage(MapBox.Image)) 
      { 
       g.DrawRectangles(blankPen, rects); 
       MapBox.Refresh(); 
      } 
     } 
    private void MapBox_MouseDown(object sender, MouseEventArgs e) 
    { 
     if (Location1.Contains(e.Location)) 
     { 
      arealbl.Text = "You clicked it 1"; 
     } 
     if (Location2.Contains(e.Location)) 
     { 
      arealbl.Text = "You clicked it 2"; 
     } 

}

関連する問題