Flash info

"Problems cannot be solved by the same level of thinking that created them."

- Albert Einstein
 
Accueil arrow Forum

Bienvenue sur le forum PowerShell-Scripting.com

 
STEW
Utilisateur

PowerShelleur Débutant
Messages: 12
graphgraph
Karma: 0  
Foncition recherche et Filtre dans un datagrid - 26/04/18 20:09 Bonjour,

Je reviens vers vous avec mon petit programme qui affiche dans un datagrid les sid.
J'ai mis une textbox qui une fois remplis recherche les éléments dans la datagrid jusque la tout va bien.
Cependant, je rencontre des difficultés à mettre en place mon rowfilter.
Pouvez vous m'aider svp?

Code:

Code:

 [void][Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms") [void][Reflection.Assembly]::LoadWithPartialName("System.Drawing") Function SID {     param (         [Parameter(Mandatory $Trueposition 0)]         $SID,         [Parameter(Mandatory $Trueposition 1)]         $Name,         [Parameter(Mandatory $Trueposition 2)]         $Login     )          [pscustomobject]@{         PSTypeName 'data';         SID $SID;         Name $Name;         Login $Login;     }           } # New-data function Get-SID {     $ArrayList_SID = New-Object System.Collections.ArrayList     $t Get-ADUser -Filter * -SearchBase "dc=test,dc=com" Select Name, @{ label "login"expression = { $_.SamAccountName } }, SID     $ArrayList_SID.Addrange($T)     $DataGrid_SID.DataSource $ArrayList_SID     $column $DataGrid_SID.Columns[0]     $column.Width 120     $column $DataGrid_SID.Columns[1]     $column.Width 90     $column $DataGrid_SID.Columns[2]     $column.Width 280 } $SIDWindowsForm_CleanUp_FormClosed = {     try     {         $TextBox_ID_SID.remove_TextChanged($TextBox_ID_SID_TextChanged)         $DataGrid_SID.remove_CellPainting($DataGrid_SID_CellPainting)     }     catch     {         Out-Null     } } $TextBox_ID_SID_TextChanged = {     $DataGrid_SID.Refresh()     $DataGrid_SID.DataSource.DefaultView.RowFilter "name LIKE '*$($TextBox_ID_SID.Text)*'" } $DataGrid_SID_CellPainting = [System.Windows.Forms.DataGridViewCellPaintingEventHandler]{               if ($_.RowIndex -ge 0 -and $_.ColumnIndex -ge 0 -and $TextBox_ID_SID.Text -ne "")     {         $_.Handled $true         $_.PaintBackground($_.CellBounds$true)                  if ($sw $TextBox_ID_SID.Text)         {             [string]$val $_.FormattedValue             [int]$sindx $val.ToLower().IndexOf($sw.ToLower())             [int]$sCount 1             while ($sindx -ge 0)             {                 $hl_rect = New-Object System.Drawing.Rectangle                 $hl_rect.$_.CellBounds.2                 $hl_rect.Height $_.CellBounds.Height 5                                  $sBefore $val.Substring(0$sindx)                 $sWord $val.Substring($sindx$sw.Length)                 $s1 = [System.Windows.Forms.TextRenderer]::MeasureText($_.Graphics$sBefore$_.CellStyle.Font$_.CellBounds.Size)                 $s2 = [System.Windows.Forms.TextRenderer]::MeasureText($_.Graphics$sWord$_.CellStyle.Font$_.CellBounds.Size)                                  if ($s1.Width -gt 5)                 {                     $hl_rect.$_.CellBounds.$s1.Width 5                     $hl_rect.Width $s2.Width 6                 }                 else                 {                     $hl_rect.$_.CellBounds.2                     $hl_rect.Width $s2.Width 6                 }                                  $hl_brush = new-object System.Drawing.SolidBrush Yellow                                                   $_.Graphics.FillRectangle($hl_brush$hl_rect)                                  $hl_brush.Dispose()                 $sindx $val.ToLower().IndexOf($sw.ToLower(), $sCount++)             }                          $_.PaintContent($_.CellBounds)         }              } } $SIDWindowsForm = New-Object System.Windows.Forms.Form $SIDWindowsForm.Text "Liste des SID" $SIDWindowsForm.TopMost $true $SIDWindowsForm.Width 610 $SIDWindowsForm.Height 390 $SIDWindowsForm.StartPosition 'CenterScreen' $SIDWindowsForm.add_Load({ Get-SID }) $Label_ID_SID = New-Object System.Windows.Forms.Label $Label_ID_SID.Text "Recherche ID" $Label_ID_SID.AutoSize $true $Label_ID_SID.Width 60 $Label_ID_SID.Height 10 $Label_ID_SID.Location = New-Object System.Drawing.Point(1010) $Label_ID_SID.Font "Microsoft Sans Serif,10" $SIDWindowsForm.Controls.Add($Label_ID_SID) $TextBox_ID_SID = New-Object System.Windows.Forms.TextBox $TextBox_ID_SID.Text "" $TextBox_ID_SID.Width 60 $TextBox_ID_SID.Height 20 $TextBox_ID_SID.Location = New-Object System.Drawing.Point(1028) $TextBox_ID_SID.Font "Microsoft Sans Serif,10" $TextBox_ID_SID.add_TextChanged($TextBox_ID_SID_TextChanged) $SIDWindowsForm.Controls.Add($TextBox_ID_SID) $DataGrid_SID = New-Object System.Windows.Forms.DataGridView $DataGrid_SID.Name "SID" $DataGrid_SID.Width 548 $DataGrid_SID.Height 276 $DataGrid_SID.Location = New-Object System.Drawing.Point(2440) $DataGrid_SID.add_CellPainting($DataGrid_SID_CellPainting) $SIDWindowsForm.Controls.Add($DataGrid_SID) #Clean window $SIDWindowsForm.add_FormClosed($SIDWindowsForm_CleanUp_FormClosed) [void]$SIDWindowsForm.ShowDialog()



Message édité par: Arnaud, à: 4/05/18 08:20
  | | L'administrateur a désactivé l'accés public en écriture.
STEW
Utilisateur

PowerShelleur Débutant
Messages: 12
graphgraph
Karma: 0  
Re:Foncition recherche et Filtre dans un datagrid - 3/05/18 16:31 Avez vous des idées?
  | | L'administrateur a désactivé l'accés public en écriture.
STEW
Utilisateur

PowerShelleur Débutant
Messages: 12
graphgraph
Karma: 0  
Re:Foncition recherche et Filtre dans un datagrid - 25/05/18 16:22 bonjour,
je suis toujours bloqué je ne vois pas ce qui cloche...
Avez vous pu vous pencher sur le problème?
merci
  | | L'administrateur a désactivé l'accés public en écriture.
Arnaud
Admin

Administrateur
Messages: 1235
graphgraph
Karma: 43  
Re:Foncition recherche et Filtre dans un datagrid - 30/05/18 09:38 Bonjour Stew,

Je suis désolé mais je ne fais pas souvent de GUI avec WPF; donc il m'est difficile de pouvoir t'aider sans y consacrer beaucoup de temps...

Je ne vais pas t'aider sur ce point, mais j'aurai tendance à te suggérer d'utiliser le produit PowerShell Universal Dashboard qui te permettra de faire beaucoup plus et beaucoup mieux ce que tu fais aujourd'hui avec WPF.

Universal Dasboard intègre nativement des DataGrid avec fonction de filtre. Je les utilise et ça marche super bien.

J'ai fait une vidéo de présentation et de prise en main d'universal Dashboard sur Youtube, tu la trouveras ici :
FrPSUG 2018/03/26 Universal Dashboard (Arnaud Petitjean)

Bonne journée,

Arnaud
MVP PowerShell (depuis 2007)
Suivez moi sur Twitter !
  | | L'administrateur a désactivé l'accés public en écriture.
STEW
Utilisateur

PowerShelleur Débutant
Messages: 12
graphgraph
Karma: 0  
Re:Foncition recherche et Filtre dans un datagrid - 1/06/18 15:17 Merci je vais me pencher sur ta solution
  | | L'administrateur a désactivé l'accés public en écriture.
© 2018 PowerShell-Scripting.com