Flash info

 "Même s'il se fait mal un vrai Geek ne crie pas, il Twitte."

Arnaud Petitjean

 
Accueil arrow Forum

Bienvenue sur le forum PowerShell-Scripting.com

 
STEW
Utilisateur

PowerShelleur Débutant
Messages: 6
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: 6
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.
© 2018 PowerShell-Scripting.com