0

我很難過,所以我希望有人能給我一些幫助。我正在嘗試使用PrimalForms Community Edition 2011創建一個Windows窗體,該窗體使用了一個DataGridView。我是能夠得到一個使用以下(從http://sev17.com/2009/08/02/building-powershell-guis-with-primal-forms/無恥地竊取)創建:PowerShell - DataGridView選項

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中設置它。有沒有人希望對此有任何建議/解決方案?

在此處感謝您提供任何幫助/見解/建議。

+0

對於第1點,只需用逗號分隔的列名替換sql查詢中的'*'即可。 – 2013-03-22 15:11:04

+0

做了一些更多的研究,似乎我也可以使用'$ dataGridView1.Columns [「MyColumn」]。Visible = $ False'當我有機會時,我會試一試。編輯 - 你的工作,我的沒有。謝謝!出於某種原因,我不認爲查詢是確定顯示哪些字段,而是將DataGridView綁定到表。謝謝!現在,只需要問題2。 – user1389971 2013-03-22 16:05:19

回答

0

我不使用原始形式,但我想我明白你在追求什麼。我做的是,這裏一個粗略的估計:使用PowerShell的本地出的GridView

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

。基本上,我從原始對象中創建了一個新的自定義對象集合,這些對象用於在gridview中顯示,並由數組索引號將原始數組中的對象綁定在一起。然後,從網格中選擇的對象的Index屬性被帶回到原始對象數組中,以獲取將用於進一步處理的對象。

如果有幫助。

+0

謝謝你的回答。我的環境中還沒有安裝PowerShell 3.0,但這並不完全是我所需要的,我相信。 WinForms已經可以訪問組合框對象和datagridviewcomboboxcell對象。我相信我將不得不在內部努力才能實現目標。您的解決方案是一個非常酷的竅門,我會在我的環境中獲得3.0版本以用於其他一些腳本! – user1389971 2013-03-22 15:16:53

+0

該點不是PS 3.0位,而是使用用於填充gridview的一次性自定義對象的二次集合,以便您可以選擇僅顯示所選屬性,但仍然具有所有原始屬性「場景」。 – mjolinor 2013-03-22 15:40:46

+0

也許我不是在這裏理解的東西 - 你是否建議這是一種替代形式?如果是這樣,我應該解釋,我的表單不僅僅是DataGridView,有多個選項卡等等。如果這不是你所建議的,我仍然困惑於如何在DataGridView的中間使用它來填充只有一列?對不起,我不想在這裏變得密集,但我很困惑。 – user1389971 2013-03-22 16:15:08