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);
}
그것은 내 코드가 오류없이 작동합니다!.
그리고 어떤 줄이 있습니까? 나는 당신의 코드에 기초한 가정만을 할 수있다. '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
아니 내 그리드 null이 아니며 버튼 1을 클릭하면 어떤 오류없이 작동 –
그래, 몇 년 동안 개발 된 런타임 갑자기 예외가 null 값에 대한 임의의 이러한 간단한 코드에서 throw합니다? 무례하게 들릴 수도 있지만, 항상 * 당신의 코드가 틀렸다는 것을 가정해야합니다. * ALL * 값을 디버거로 검사하려고했는데 그리드뿐만 아니라 메소드/행 색인에 반환되는 값도 검사했습니다. – Bauss