0

我很困惑,所以我希望有人可以在这里给我一些帮助。我正在尝试使用 PrimalForms Community Edition 2011 创建一个使用 DataGridView 的 Windows 窗体。我能够使用以下方法创建一个(无耻地从http://sev17.com/2009/08/02/building-powershell-guis-with-primal-forms/窃取):

endregion Generated Form Objects
$bindingSource1 = new-object System.Windows.Forms.BindingSource
$dataAdapter = New-Object System.Data.SqlClient.SqlDataAdapter
$serverName = “myserver.com”
$databaseName = “myDB”
$query = ‘select * from tblPotConflicts’
#———————————————-
#Generated Event Script Blocks
#———————————————-
#Provide Custom Code for events specified in PrimalForms.
$Form1_Load=
{
$dataGridView1.DataSource = $bindingSource1
$connString = “Server=$serverName;Database=$databaseName;Integrated Security=SSPI;”
$dataAdapter.SelectCommand = new-object System.Data.SqlClient.SqlCommand ($query,$connString)
$commandBuilder = new-object System.Data.SqlClient.SqlCommandBuilder $dataAdapter
$dt = New-Object System.Data.DataTable
[void]$dataAdapter.fill($dt)

$bindingSource1.DataSource = $dt

$dataGridView1.AutoResizeColumns([System.Windows.Forms.DataGridViewAutoSizeColumnsMode]::AllCellsExceptHeader)
}

这非常适合为 DataGridView 创建绑定,因为您实际上无法在 PrimalForms 本身内执行此操作[至少据我所知]。我很好奇的是:

  1. 您可以省略 DataGridView 中的任何列吗?如果可能的话,我宁愿向最终用户隐藏一些专栏,并在幕后以编程方式操纵它们。我对 SQL 并不感冒,所以这很可能是超级基础和简单的东西。

  2. 我有一列我想作为一个组合框。我看到在 C# 中他们可以选择列类型 DataGridViewComboBoxColumn,但我不知道如何在 PowerShell 中进行设置。有没有人希望对此有任何建议/解决方案?

提前感谢您在这里提供的任何帮助/见解/建议。

4

1 回答 1

0

我不使用原始形式,但我想我明白你在追求什么。我在这里做了一个粗略的近似:

http://gallery.technet.microsoft.com/scriptcenter/Select-FromGridView-521a56d8

使用 Powershell 的原生 out-gridview。基本上,我从用于在 gridview 中显示的原始对象创建了一个新的自定义对象集合,这些对象由原始数组中的对象的数组索引号绑定在一起。然后从网格中选择的对象的 Index 属性被带回原始对象数组以获取将用于进一步处理的对象。

如果这有帮助。

于 2013-03-22T15:06:12.503 回答