1
10 x 10 그리드의 패널 배열이 있고 x 및 y 좌표로 각 패널 위치를 설명하면 어떻게 이것을 Panel.click 이벤트에 전달할 수 있습니까?winforms 패널의 그리드 좌표 전달
int sqSize = 80;
int bAcross = 10;
CPanels = new Panel[bAcross, bAcross]; //10 * 10 grid
for (int y = 0; y < bAcross; y++)
{
for (int x = 0; x < bAcross; x++)
{
var newPan = new Panel
{
Size = new Size(sqSize, sqSize),
Location = new Point(x * sqSize, y * sqSize)
};
Controls.Add(newPan);
CPanels[x, y] = newPan; //add to correct location on grid
newPan.Click += Pan_Click;
클릭 이벤트에서 나는 무엇을해야합니까?
private void Pan_Click(object sender, EventArgs e)
{
int x = (extract x coord)
int y = (extract y coord)
}
편집 : 명확하게하려면 표에서 위치를 찾고 있습니다. 기본적으로 그리드의 왼쪽 상단은 0, 0이어야하며, 오른쪽 아래는 10
그가 원하는지 또는 패널이 차지하고있는 배열 좌표를 얻는 지 확실하지 않은 경우 –
@MarkHall 오, 좋은 지적입니다. 특정 패널이 차지하고있는 10x10 격자의 좌표를 알고 싶을 수도 있습니다. 데이비드 N, 너가 실제로 찾고있는거야? –
다른 패널 (그리드)에 상대적으로 뭔가를 찾고있었습니다. 왼쪽 위처럼 0, 0이되어야합니다. 오른쪽 하단은 10, 10이어야합니다. –