2017-01-01 9 views
0

최근에 C# 응용 프로그램에 Toolstrip이 추가되었으며 함수를 호출하는 메뉴 항목을 클릭하면 오류가 발생하지만 Windowsform Button에서 함수를 호출하면 완벽하게 작동합니다. 다음 내 기능입니다 :ToolstripMenuItem 클릭하면 오류가 발생합니까?

private void ShowAddDocument(object sender, EventArgs e) 
    { 

      foreach (var rr in this.gridEX1.GetDataRows()) 
      { 

       if (rr.Cells["Select"].Value != null) 
       { 
        if (rr.Cells["DocumentNumber"].Value.ToString() != "") 
        { 

         rr.BeginEdit(); 
         rr.Cells["Select"].Value = null; 
         rr.EndEdit(); 
        } 
        else 
        { 
         this.gridEX1.Tag = "SELECTED"; 


        } 
       } 

      } 

나는 기능과 ToolStrip에 MenuItem의 Click 이벤트에 연결하는 라인을 다음 사용

this.userControl11.IssueDocMenuItem.Click += new System.EventHandler(ShowAddDocument); 

하지만이 오류가 발생하여 ToolStrip 메뉴 항목을 클릭 : "개체 참조 객체의 인스턴스로 설정되지 않습니다 ". 내가 Windowsform 버튼을 사용하여 다음 코드로 함수를 호출 할 때 하지만 이상한 부분은 다음과 같습니다

private void button1_Click(object sender, EventArgs e) 
    { 
     ShowAddDocument(sender, e); 
    } 

그것은 내 코드가 오류없이 작동합니다!.

+0

그리고 어떤 줄이 있습니까? 나는 당신의 코드에 기초한 가정만을 할 수있다. 'gridEx'는 null이고,'GetDataRows'는 null을 반환하고'rr'은 null을 반환하거나 셀 중 하나는'rr'의 인덱스를 사용하여 null ex를 반환합니다. 'rr [ "Select"]'and'rr [ "DocumentNumber"]'참조 : http://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-and-how-do-i-fix- 그것 – Bauss

+0

아니 내 그리드 null이 아니며 버튼 1을 클릭하면 어떤 오류없이 작동 –

+0

그래, 몇 년 동안 개발 된 런타임 갑자기 예외가 null 값에 대한 임의의 이러한 간단한 코드에서 throw합니다? 무례하게 들릴 수도 있지만, 항상 * 당신의 코드가 틀렸다는 것을 가정해야합니다. * ALL * 값을 디버거로 검사하려고했는데 그리드뿐만 아니라 메소드/행 색인에 반환되는 값도 검사했습니다. – Bauss

답변

0

내 gridex Select Column에서 ActAsSelector라는 동작이 이미 발견되었으며, 이제는 내 문제가 해결되었습니다. 이제 문제가 해결되었습니다.