2013-07-07 28 views
-2

我仍然是新手关于此..我试图做出多个选择条件如果选定的行包含我想要的字符串,我已经得到值,但是当我试图在另一行中获得相同的值时,它会抛出Object reference而不是设置为某个对象的实例,我想要做的是,如果我已经获取了所需的选定行,我想清除单元格,而不是删除行。我正在使用右键单击事件,我发现在某些情况下在stackoverflow。希望你能理解,谢谢您的帮助和解释......这里是我的代码多选择,但对象引用未设置为对象的一个​​实例

如果(e.Button == MouseButtons.Right) {

  rw = dgv_Jadwal_Sewa.HitTest(e.X, e.Y).RowIndex; 


      cellValueNota = (int)dgv_Jadwal_Sewa.Rows[rw].Cells[5].Value; 
      String cl = Convert.ToString(cellValueNota); 


      dgv_Jadwal_Sewa.Rows[rw].Selected = true; 

      ContextMenuStrip m = new ContextMenuStrip(); 

      m.Items.Add("Cancel"); 
      m.ItemClicked += new ToolStripItemClickedEventHandler(m_ItemClicked); 
      m.Show(dgv_Jadwal_Sewa, new Point(e.X, e.Y)); 


    } 



    public void cancel_Booking() 
     { 
       String cl = Convert.ToString(cellValueNota); 


       foreach (DataGridViewRow row in dgv_Jadwal_Sewa.Rows) 
       { 
        if (row.Cells[5].Value.ToString().ToString().Contains(cl)) 
        { 
         rw = row.Index; 
         //row.Selected = true; 
         dgv_Jadwal_Sewa.Rows[rw].Selected = true; 


         break; 
        } 
       } 




     } 

它扔在这条线(row.Cells[5].Value.ToString().ToString().Contains(cl))

+0

你完全确定你在Cells中有6个对象吗?或者如果单元不为空?调试它。删除双重ToString():D – wudzik

+0

是的我确定有6个对象,我删除了双重toString(),但仍然抛出相同的时候,我点击菜单上下文菜单取消... –

+0

哪个字段为空?如果你使用VS调试器,你可以通过在文本编辑器中悬停变量来检查它 – wudzik

回答

0

row.Cells [5]为null或row.Cells [5] .Value为null或row为null。

相关问题