왜 컨트롤을 드래그할 때, Winform은 new 실례를 사용해야 하는데, WebForm은 쓸모가 없습니까?

1630 단어 WinForm
WinForm과 WebForm 프로그램에서 컨트롤을 드래그할 때 발생하는 코드는 조금 다르다. 바로 WinFrom에서 새로 드래그한 컨트롤을 new로 다시 실례화하는 것이다. 그러나 WebForm은 다음과 같이 사용하지 않는다.
WebForm 아래: protected System.Web.UI.WebControls.Button Button1;
WINForm 아래: private System.Windows.Forms.Button button1;
                       this.button1 = new System.Windows.Forms.Button();
이 문제에 대해 그룹 안의 맏이들에게 가르침을 청했다. 샤오펑(ben)의 해석은 우리가 aspx를 이해하고 인식하는 데 매우 편리하다. 나는 여기에 써서 모두가 교류하는 데 편리하고 다른 의견이 있으면 우리가 제때에 다시 인식하는 데 편리하다.
샤오펑(ben)은 윈도우 프롬이 다시 실례화되어야 하는 이유는 웹포롬의 aspx와 같은 파일이 없기 때문이라고 말했다. 윈포드 안의 컨트롤러와 창은 모두 cs를 통해 그려진 것이다.WebForm의 aspx 파일 중 일부 컨트롤러는runat="server"속성을 포함하고 서버 측 컨트롤러로 id 속성을 가지고 cs 파일에서 유사한 보호된 시스템을 사용합니다.Web.UI.WebControls.Button Button1;cs 파일에서 컨트롤 실례를 정의하지만 new를 사용하지 않습니다. 이 실례가 asp이기 때문입니다.net 베이스(해상도)가 Request[id]를 통해 반환되는 대상입니다. aspx 파일에 id="컨트롤 이름"run at="server"컨트롤이 없고 cs 파일에 보호된 컨트롤이 있다면......컨트롤 이름의 정의는 실행할 때 Request 집합에서 찾아야 합니다. 만약 찾을 수 없다면, 프로그램에서 new 재실례를 사용했는지, 그렇지 않으면 실행할 때 다음과 같은 오류가 발생합니다.
대상 인용이 대상의 실례에 설정되지 않았습니다.
설명: 현재 웹 요청을 수행하는 동안 처리되지 않은 예외가 발생했습니다.이 오류와 코드에서 발생한 오류의 출처에 대한 상세한 정보를 확인하려면 창고 추적 정보를 확인하십시오.예외 세부 정보: 시스템.NullReference Exception: 객체 참조가 객체의 인스턴스에 설정되지 않았습니다.소스 오류:
  43:    this.Button1.Click += new System.EventHandler(this.Button1_Click);

              44:    this.Load += new System.EventHandler(this.Page_Load);

              45:    this.Button2.Click+=new EventHandler(Button2_Click);

              46:

              47:   }

만약 new 실례화를 다시 사용한다면, 예를 들어:this.Button2=new Button;상소 착오가 생기지 않을 겁니다.

좋은 웹페이지 즐겨찾기