2017-01-01 2 views
0

Недавно добавленная панель инструментов для моего приложения C#, и при щелчке по элементу меню, вызывающему функцию, есть ошибка, но при вызове функции из кнопки Windowsform она отлично работает. Ниже моя функция: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 Щелкните событие:

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

но когда нажмите на ToolStrip пункт меню это вызовет ошибку: «Object Reference не установлен в экземпляр объекта ". но странная часть, когда я использую WindowsForm кнопку и вызвать функцию следующего кода:

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

Это мой код работает без ошибок !!!.

+0

И какая строка дана для? Я могу только делать предположения на основе вашего кода. Это либо 'gridEX', что null,' GetDataRows', который возвращает null, что делает 'rr' null, или одна из ячеек извлекается с индексами на' rr', которая равна null ex. 'rr [" Выбрать "]' и 'rr [" DocumentNumber "]' Также см .: http://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-and-how-do-i-fix- это – Bauss

+0

Нет, моя сетка не равна нулю, и при нажатии кнопки Button1 она работает без ошибок –

+0

Да, потому что среда выполнения, которая была разработана в течение многих лет, внезапно генерирует исключения для нулевых значений случайным образом в таком простом коде? Не звучать грубо или что-то еще, но вы должны * ВСЕГДА * предполагать, что ваш собственный код неверен. Вы пытались проверить значения * ALL * с помощью отладчика, а не только вашей сетки, а также какие значения возвращаются в ваших индексах метода/строки. – Bauss

ответ

0

Я уже нашел поведение с именем ActAsSelector в моем gridex. Выберите Column и установите значение True, тогда моя проблема разрешена.

Смежные вопросы