2014-12-30 6 views

답변

1

윈폼되어 있다고 가정하고, 모든 버튼이 양식 직접 을 포함 :

private void btPlayer_Click(object sender, EventArgs e) 
    { 
     foreach(Button btn in this.Controls.OfType<Button>()) 
     { 
      if (!btn.Equals(btPlayer)) 
      { 
       if (btPlayer.Bounds.IntersectsWith(btn.Bounds)) 
       { 
        Console.WriteLine("btPlayer intersects with " + btn.Name); 
       } 
      } 
     } 
    } 
+0

난 정말이 생각 당신은 당신의 수집 등의 간단이 있으면. 그러나이 방법이 효과적인지 나는 몰랐다. 그러나 그것은 내 문제를 해결합니다! 고마워. – user17245

1

양식에 단추 모음이 있어야합니다.

Controls.OfType<Button>(); 

(예 : 패널이나 그룹 상자의 것과 같은) 중첩 버튼을 잡아하지 않습니다 : 그것은 소리로이 같이 반드시 쉽지 않다 있습니다.

//Not recursive, make sure we don't include ourself 
IEnumerable<Button> allButtons = Controls.OfType<Button>() 
           .Except(new List<Button>() { btPlayer })(); 
if (allButtons.Any(b => b.Bounds.IntersectsWith(btPlayer)) 
{ 
    //An intersection has occurred! 
} 
관련 문제