我在该脚本中有一个powershell脚本,我正在使用datagridview。 我的脚本工作正常。一切看起来都不错。
我的问题是我想获取所选行的第一列值。为了实现这一点,我需要添加事件(单击单击/单元格单击/单击鼠标单击)。我无法理解。如何添加活动。
有人可以就此提出建议吗?
$datagridview1_CellMouseClick = [System.Windows.Forms.DataGridViewCellEventHandler]{
write-host $_.RowIndex # This displays the row number selected
write-host $_.ColumnIndex # This displays the column number selected
write-host $datagridview1.Rows[$_.RowIndex].Cells[0].value # This would display the value of the first cell in the selected row
write-host $datagridview1.Rows[$_.RowIndex].Cells[$_.ColumnIndex].value # This would display the value of the cell selected
}
C#有很多可用的例子,但没有为powershell找到任何东西。
答案 0 :(得分:2)
根本不是一个愚蠢的问题,但有点令人困惑。您说您想要所选行的第一列值,但是根据您要查找的输出,您似乎对所选单元格更感兴趣。我回答的假设是细胞的选择是你正在寻找的。 p>
这里可以使用许多可能的事件。它们之间的差异是微妙的,所以我会留给你看看是否有一个更适合你的目的的事件。对于我的回答,我会坚持你提到的事件:CellMouseClick。
首先创建我想在点击发生时执行的功能。
function gridClick(){
$rowIndex = $myGrid.CurrentRow.Index
$columnIndex = $myGrid.CurrentCell.ColumnIndex
Write-Host $rowIndex
Write-Host $columnIndex
Write-Host $myGrid.Rows[$rowIndex].Cells[0].value
Write-Host $myGrid.Rows[$rowIndex].Cells[$columnIndex].value}
请注意,您必须决定变量的范围以及函数与数据网格的交互方式。如果要在脚本级别声明datagrid,那么您应该能够在函数内按名称引用它。此功能将按照您问题中列出的确切顺序执行您所说的操作。编辑品尝。
您可以在声明数据网格后添加click事件,如下所示:
$myGrid.Add_CellMouseClick({gridClick})
请注意,我们创建的函数的名称放在括号内。
一些重要的注意事项: