첨부 실행 코드는 나눔고딕코딩 폰트를 사용합니다.
유용한 소스 코드가 있으면 icodebroker@naver.com으로 보내주시면 감사합니다.
블로그 자료는 자유롭게 사용하세요.

■ 특정 위치에서 컨트롤 구하기 예제

------------------------------------------------------------------------------------------------------------------------

using System.Drawing;

using System.Windows.Forms;

 

Point sourcePoint = new Point(50, 50);          // 로컬 좌표계

Point targetPoint = PointToScreen(sourcePoint); // 화면 좌표계

 

Control control = GetControl(targetPoint); // 해당 위치에 컨트롤이 없는 경우 null을 반환한다.

------------------------------------------------------------------------------------------------------------------------

 

■ 특정 위치의 컨트롤 구하기

------------------------------------------------------------------------------------------------------------------------

using System;

using System.Diagnostics.CodeAnalysis;

using System.Drawing;

using System.Runtime.InteropServices;

using System.Windows.Forms;

 

#region 포인트에서 윈도우 구하기 - WindowFromPoint(point)

 

/// <summary>

/// 포인트에서 윈도우 구하기

/// </summary>

/// <param name="point">포인트</param>

/// <returns>윈도우 핸들</returns>

[DllImport("user32.dll", CharSet=CharSet.Auto)]

[SuppressMessage("Microsoft.Portability", "CA1901:PInvokeDeclarationsShouldBePortable", MessageId = "0")]

public static extern IntPtr WindowFromPoint(Point point);

 

#endregion

 

#region 컨트롤 구하기 - GetControl(point)

 

/// <summary>

/// 컨트롤 구하기

/// </summary>

/// <param name="point">포인트</param>

/// <returns>컨트롤</returns>

/// <remarks>포인트는 화면 좌표계 포인트이다.</remarks>

public Control GetControl(Point point)

{

    return Control.FromChildHandle(WindowFromPoint(point));

}

 

#endregion

------------------------------------------------------------------------------------------------------------------------

Posted by 사용자 icodebroker

댓글을 달아 주세요