WinForm에서 이름별로 컨트롤을 찾는 방법
키 코드는 다음과 같습니다.
///
///
///
///
///
/// NULL
public static Control DownRecursiveFindControl(this Control parentControl, string findCtrlName)
{
Control _findedControl = null;
if (!string.IsNullOrEmpty(findCtrlName) && parentControl != null)
{
foreach (Control ctrl in parentControl.Controls)
{
if (ctrl.Name.Equals(findCtrlName))
{
_findedControl = ctrl;
break;
}
else
{
if (ctrl.Controls.Count > 0)
_findedControl = DownRecursiveFindControl(ctrl, findCtrlName);
}
}
}
return _findedControl;
}
///
/// Control
///
///
/// Control
///
/// ; NULL
public static T Cast(this Control control, out bool result) where T : Control
{
result = false;
T _castCtrl = null;
if (control != null)
{
if (control is T)
{
try
{
_castCtrl = control as T;
result = true;
}
catch (Exception ex)
{
Debug.WriteLine(string.Format(" Control , :{0}", ex.Message));
result = false;
}
}
}
return _castCtrl;
}
테스트 코드는 다음과 같습니다.
bool _sucess = false;
CheckBox _finded = this.DownRecursiveFindControl("checkBox1").Cast(out _sucess);
if (_sucess)
{
MessageBox.Show(_finded.Name);
}
else
{
MessageBox.Show("Not Finded.");
}
본고에서 서술한 실례가 여러분의 C# 프로그램 설계에 도움이 되었으면 합니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.