좋아, 이건 내 첫 번째 windows 양식 응용 프로그램이고 나는 내 코드를 재구성하는 데 어려움을 겪고있다. 기본적으로 제공되는 Form1
클래스의 모든 것을 퍼팅하기 시작 했으므로 빠르게 커졌습니다. 저는 이것이 꽤 나쁜 프로그래밍 습관이라는 것을 알고 있습니다. 그래서 저는 약간의 정리 작업을 시작했고, 단일 책임 원칙을 만족시키기 위해 다른 클래스를 만들었습니다. 그러나 일부 버튼 관련 이벤트 및 그리드 관련 이벤트는 Form1
클래스에서 잘 작동하기 때문에 바깥으로 가져 가면 충돌이 발생하고 어떻게 수행해야하는지 알 수 없습니다.windows forms organize code
public partial class Form1
{
public Form1()
{
InitializeComponent();
}
private void method1(object sender, EventArgs e)
{
//CODE
}
private void method2(object sender, DataGridViewCellEventArgs e)
{
//CODE
}
private void method3(object sender, EventArgs e)
{
//CODE
}
}
그래서 나는 method1
, method2
, method3
등 다른 클래스 (또는 다른 클래스)로 이동하고 싶습니다,하지만 꽤 많은 응용 프로그램을 파괴하지 않고이 작업을 수행하는 방법에 잃었다. 음, 개인은 명백하게 액세스 권한을 부여하기 위해 public으로 설정되어 있지만 나중에 Form1 클래스에서이 메소드를 호출하는 방법을 알지 못합니다. 새 클래스를 만들고 이벤트에서 메서드를 호출하려고하면 onClick: Newclass.method1()
처럼 작동하지 않습니다. 내가 생각할 수있는 한 가지는 Form1 onClick: thisMethodCallsTheOneINeedInADifferentClass()
에서 몇 가지 방법을 호출하는 것과 비슷하지만, 서투른 해결책 인 것 같습니다 ... 이것을 해결할 수있는 더 좋은 방법이 있다고 확신합니다. 어떻게 해야할지 모르겠습니다. 조언 감사, 감사합니다
양식 내에 이벤트 처리기를 두는 것이 좋습니다. – stuartd
'작동하지 않는다'는 의미를 더 잘 정의하면 필요한 답을 얻는 것이 더 나을 것입니다. 컴파일러 오류? 추락? 예외? –