나는 C를 잘 쓰지 못하고 C#을 잘 못 쓰는 데 익숙하다.다른 클래스 간의 함수 호출
제 문제는 openAnotherForm()
을 Welcome_Form
에서 실행할 수 있고 지금 코드가 작동하지 않기를 바랍니다. 나는 참을성있게 다른 일을 시도했지만 오직 나의 좌절을 밀어 냈습니다.
문제를 설명하기 위해 관련 코드가 단순화되었습니다.
파일 1 -이 실행하고 파일 열기 2.
class UIcode
{
private Welcome_Form Welcome;
private AnotherForm_Form AnotherForm;
public UIcode()
{
Welcome = new Welcome_Form();
Application.Run(Welcome);
}
public void openAnotherForm()
{
Welcome.Hide();
AnotherForm = new AnotherForm_Form();
AnotherForm.ShowDialog();
}
}
파일 2 - 나는 TheButton
을 클릭하면, 프로그램은 파일에서 기능 openAnotherFrom
를 실행해야합니다 1.
public partial class Welcome_Form : Form
{
public Welcome_Form()
{
InitializeComponent();
}
private void TheButton_Click(object sender, EventArgs e)
{
// Function from file 1
UIcode.openAnotherForm();
}
}
내가 실현 문제는 아주 사소한 일이지만 나는 이것을 어떻게 수행하는지에 대한 설명에 대해 여전히 감사 할 것입니다.
선호 : UIcode의 함수는 UIcode가 지정한 클래스에서만 인식되어야합니다.
'openAnotherForm'은 UICode의 인스턴스 메소드입니다.이 메소드는 인스턴스를 실행해야 할 필요가 있음을 의미합니다. 또는 메소드를 정적으로 만들어야합니다. 즉,이 경우 리팩터링이 필요하거나 작동하지 않는 UICode의 인스턴스 변수 나 메소드를 참조 할 수 없음을 의미합니다. – Chris
두 번째 양식은 열어 본 부모에 대한 참조가 필요합니다. 생성자에서 전달할 수 있습니다. –