C#창문 열기를 어떻게 판단합니까
1874 단어 문제.
문제.
실행할 때Form1이 나타나고 단추를 누르면 창으로Form2가 튀어나옵니다.다시 클릭하면 창이 튀어나옵니다. (new form을 사용했기 때문에 다시 form2를 만들었기 때문에 계속 뛴다.)내가 원하는 효과는 하나만 나올 수 있고 다시 클릭하면 새로운 것이 나오지 않는다.그럼 이것은if문장을 덧붙여서 판단해야 한다.
코드 데모:
Form1 :
public Form2 f2 =null;//
private void button1_Click(object sender,EventArgs e)
{
if(f2==null)
{ // , , 。
f2=new Form2(this);
f2.Show();
}// , , 。
}
Form2 :
Form1 f1; // Form1 。
public Form2(Form1 ff)
{
InitializeComponent();
f1=ff;
}
private void Form2_FormClosing(object sender,FormClosingEventArgs e)
{ // Form2 , Form1 Form2 ,
f1.f2=null;
}
뒤돌아보다: 다시 처음부터 문제를 생각해 보자. 나는 어떻게 한 창에서 다른 창을 제어할 수 있는지 생각했다. 나는 A 창에 B 창을 new로 만들 수 있다.그러나 나는 B 창이 열렸는지 아닌지를 판단하기 위해if조건문을 설정해야 한다.그러면 Form1 (대응 A 창) 에는 B 창을 연결하는 물건이나 매개 변수, 변수가 있어야 합니다.내가 이미 창을 하나 가지고 있다면 f2는null이 아니다.그렇다면 if판단은 바로 넘어가고 덧붙이기 쉽다. 그러면 어떻게 삭제할까?왜냐하면 나는 A 창을 열었을 때 이미 B 창을 열었기 때문이다. 단지 표시되지 않았을 뿐이고, 내가 설정한 초기 값은null이기 때문이다.Form1에는 Form2의 변수가 있는데 생각하기 쉽다. 왜냐하면 Form1은 Form2를 제어하지만 Form2에는 From1의 변수가 있기 때문이다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
곤혹스러울 때 사용하는 문제 형식의 소개포기할 수 있다면 그것도 방법이지만 일이라면 그렇게 하지 않을 거예요. 모르는 것을 묻기 위해 지식이 있는 사람에게 질문하겠죠. 처음부터 무언가에 대해 알려주면 심리적 모형을 만들어 줄 수 있다. 물어보고 싶은 것을...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.