Powershell:选择DataGridView Row

时间:2012-07-15 16:39:32

标签: arrays powershell datagridview

到目前为止,我有这段代码。

$form = New-Object System.Windows.Forms.Form
$form.Size = New-Object System.Drawing.Size(900,600)
$dataGridView = New-Object System.Windows.Forms.DataGridView
$dataGridView.Size=New-Object System.Drawing.Size(800,400)
$go = New-Object System.Windows.Forms.Button
$go.Location = New-Object System.Drawing.Size(300,450)
$go.Size = New-Object System.Drawing.Size(75,23)
$go.text = "Select"
$form.Controls.Add($go)
$form.Controls.Add($dataGridView)


$dataGridView.ColumnCount = 4
$dataGridView.ColumnHeadersVisible = $true
$dataGridView.Columns[0].Name = "Name"
$dataGridView.Columns[1].Name = "ID"
$dataGridView.Columns[2].Name = "Description"
$dataGridView.Columns[3].Name = "Memory"

$dataGridView.Columns[0].width = 240

get-process | foreach {
    $dataGridView.Rows.Add($_.Name,$_.ID,$_.Description,$_.WorkingSet) | out-null
}

$go.Add_Click({
    $selectedRow = $dataGridView.CurrentRowIndex
write-host $selectedRow
})

[void]$form.ShowDialog() 

它只获取Process Name,ID等属性,并将它们放入DataGridView中的预定义标题中。

我的问题是我希望通过$selectedRow = $dataGridView.CurrentRowIndex看到我点击的行并将其输出到控制台。相反,当按下“选择”按钮时,空白字符串将输出到终端。

2 个答案:

答案 0 :(得分:7)

您还可以使用以下内容获取行索引:

$dataGridView.CurrentCell.RowIndex

$dataGridView.SelectedRows[0].Index

您可能还想将网格MultiSelect属性设置为$ false。目前它允许多行选择。另一件需要考虑的事情是将SelectionMode属性设置为'FullRowSelect'。填充网格时,将选择第一列,而不是整行。

答案 1 :(得分:2)

更改

$selectedRow = $dataGridView.CurrentRowIndex 

$selectedRow = $dataGridView.CurrentRow.Index