3

これまでのところ、私はこのコードを持っています。

$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() 

プロセス名、ID などのプロパティを取得し、DataGridView.

私の問題は、クリックした行を確認し$selectedRow = $dataGridView.CurrentRowIndexてコンソールに出力したいということです。代わりに、「選択」ボタンが押されると、空の文字列が端末に出力されます。

4

2 に答える 2

7

次の方法で行インデックスを取得することもできます。

$dataGridView.CurrentCell.RowIndex

また

$dataGridView.SelectedRows[0].Index

グリッドの MultiSelect プロパティを $false に設定することもできます。現在、複数の行を選択できます。考慮すべきもう 1 つのことは、SelectionMode プロパティを「FullRowSelect」に設定することです。グリッドが設定されると、行全体ではなく、最初の列が選択されます。

于 2012-07-16T07:28:04.333 に答える
2

変化する

$selectedRow = $dataGridView.CurrentRowIndex 

$selectedRow = $dataGridView.CurrentRow.Index
于 2012-07-16T01:05:34.943 に答える