Sub Button1_Click(sender As Object, e As EventArgs)
是按钮的事件处理方法,(sender As Object, e As EventArgs)是这个方法的参数第一个Object类型的参数sender是引发这个事件的对象,也就是被按下的Button
第二个EventArgs类型的参数是事件处理中传递的额外的参数一般情况,最好是不要手动调用事件方法,如果你一定要调用,需要传入正确的参数Sub Button1_Click(sender As Object, e As EventArgs)
decide( datagrid,null )
'上面的datagrid就是你的DataGrid的名称
'其他代码
end sub如果你在DataGrid的事件中处理了DataGridCommandEventArgs的参数,那么就不能传null进去,而是要new一个DataGridCommandEventArgs,然后传入对应的DataGridItem和CommandName,不过这样始终不是很好。
你不能换一种思路来解决问题吗?

解决方案 »

  1.   

    试试
    decide(this,DataGridCommandEventArgs.Empty)
      

  2.   

    用你们的方法都不行,以下是我的代码!!
    decide用于确定datagrid中的那行复选框被选上,
    botton4用于触发decide执行并进行进一步的工作。
    应该怎么改?还是可以以其他方法实现??
    谢谢各位!!sub decide(sender as Object, e as DataGridCommandEventArgs)
        
        
        Dim chkSelected As CheckBox
                Dim i, c As Integer
                c = datagrid1.Items.Count
                If (c = 0) Then
                    Exit Sub
                End If
                    For i = 0 To (c - 1)
                        '从列表gridSheBei依次选取每行
                        chkSelected = Nothing
                        chkSelected = datagrid1.Items(i).FindControl("chkRemove")
                        If (Not (chkSelected Is Nothing)) Then
                            '找到每行的复选框
                            If (chkSelected.Checked = True) Then
                                Dim devicekey as TableCell = e.Item.Cells(4)
                                Dim device as String = devicekey.Text
                                message.Text=device
        
                             End If
                        End If
                    Next
                    end sub
    Sub Button4_Click(sender As Object, e As EventArgs)
        
       ' 调用decide()
        ‘ 其他代码
    End Sub
      

  3.   

    sub decide(sender as Object, e as DataGridCommandEventArgs)是不是事件处理的函数?不是的话,你要(sender as Object, e as DataGridCommandEventArgs)干嘛?直接声明为 sub decide()不就可以调了吗?
      

  4.   

    别再调用 decide了,
    在decide里面 用一个session变量,把选定的行传递出来 。
    然后在click里面判断它。
      

  5.   

    你使用decide(this,DataGridCommandEventArgs.Empty)
    不成功,是在decide中使用了DataGridCommandEventArgs中的值
      -- Dim devicekey as TableCell = e.Item.Cells(4)不要这样调用decide函数
    直接在decide中,把选定的行保存到ViewState中
    在Button4_Click中直接获取ViewState中的值好了
    或者
    不用e.Item,直接用DataGrid对象要获取文本
      

  6.   

    不行到底应该怎么办?
    只有在这个botton被触发时才可以调用decide以判断那行被选择,所以只能在botton中调用device,可是参数不同,总报错到底应该怎么办????
    能不能帮忙改改我的代码??!!!谢谢各位!!!!
      

  7.   

    问题:
    sub decide(sender as Object, e as DataGridCommandEventArgs)中调用了参数e吗?
    如果没有可以:
    sub mydecide()
    后在datagrid事件和按钮事件中调用mydecide函数
      

  8.   

    在decide中用到e了!!
    能不能把sub mydecide()说的更清楚些!!