자식폼에서 dataGridView의 selectedIndex 전달 받기
1. 이벤트 활용 방법
자식폼
public partial class DeviceListForm : Form
{
// ...
public event EventHandler<int> OnItemSelected;
// OK 버튼 클릭 시
private void buttonOk_Click(object sender, EventArgs e)
{
if(deviceList.SelectedIndex != -1)
{
OnItemSelected?.Invoke(this, deviceList.SelectedIndex);
}
}
// ListBox 더블클릭 시
private void deviceList_MouseDoubleClick(object sender, MouseEventArgs e)
{
if (deviceList.SelectedIndex != -1)
{
OnItemSelected?.Invoke(this, deviceList.SelectedIndex);
}
}
}
부모폼
public partial class MainForm : Form
{
//...
private void MainForm_Load(object sender, EventArgs e)
{
deviceListForm = new DeviceListForm();
// 이벤트 구독
deviceListForm.OnItemSelected += deviceListForm_OnItemSelected;
}
// 이벤드 핸들러
void deviceListForm_OnItemSelected(object sender, int itemIndex)
{
deviceListForm.Hide();
// 캡쳐 스타트
StartCapture(itemIndex);
}
}
2. 이벤트 + 프로퍼티 사용방법
자식 폼
public string SelectedValue { get; set; }
private void deviceList_SelectedIndexChanged(object sender, EventArgs e)
{
SelectedValue = deviceList.SelectedItem.ToString();
}
부모 폼
void deviceListForm_OnItemSelected(object sender, int itemIndex)
{
// ...
label1.Text = deviceListForm.SelectedValue;
}
이벤트는 특정 상황이 발생했을 때, 이를 구독하는 다른 객체들에게 전달인자와 함께 알리는 기능을 한다.
그리고 프로퍼티는 클래스 멤버 변수에 접근할 때 사용될 수 있는 인터페이스인데 이를 통해 부모폼 클래스에서 자식폼 클래스의 멤버 변수에 접근할 수 있다.
'프로그래밍 > C# (WinForms)' 카테고리의 다른 글
C#, WinForms ] tabControl의 탭 부분 색상 변경 (0) | 2023.11.07 |
---|---|
C# ] 명령프롬프트, 시스템 명령어 실행 (0) | 2023.07.11 |
WinForms ] Anchor, Dock properties (0) | 2023.05.14 |
C#, WinForms ] Event 와 delegate (0) | 2023.05.14 |
C#, WinForms ] CRC Checker (0) | 2023.05.14 |