Question [Résolu] DataGridView remplissage par colonne

Plus d'informations
il y a 7 ans 7 mois #22206 par Yohann Journiac
Oui c'est vrai j'ai oublié de copier le code sur ma clé.
C'est au boulot, je vous le copie pour demain.

Merci de votre aide.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 7 ans 7 mois #22208 par Philippe
salut Juronius

je suis tombé par hazard sur ce site de formation , je pense qu'il doit être possible d'actualisé les données du tableau qu'il affiche

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 7 ans 7 mois #22209 par Yohann Journiac
Merci mais je n'ai pas trouvé l'info.

Sinon voici une partie du code :
[code:1]
$mDataGrid1 = New-Object System.Windows.Forms.DataGridView
$mDataGrid1.Text=\"DataGrid1\"
$mDataGrid1.Top=\"40\"
$mDataGrid1.Left=\"190\"
$mDataGrid1.Anchor=\"Left,Top\"
$mDataGrid1.ColumnCount = 14
$mDataGrid1.Columns[0].Name = \"Interface Description (ifDescr)\"
$mDataGrid1.Columns[1].Name = \"Interface Name\"
$mDataGrid1.Columns[2].Name = \"Interface Description (ifAlias)\"
$mDataGrid1.Columns[3].Name = \"Interface Type\"
$mDataGrid1.Columns[4].Name = \"VLAN\"
$mDataGrid1.Columns[5].Name = \"Status\"
$mDataGrid1.Columns[6].Name = \"Speed\"
$mDataGrid1.Columns[7].Name = \"Mode\"
$mDataGrid1.Columns[8].Name = \"MAC Address\"
$mDataGrid1.Columns[9].Name = \"IP Address\"
$mDataGrid1.Columns[10].Name = \"Hostname assigned to IP\"
$mDataGrid1.Columns[11].Name = \"Interface Manufacturer\"
$mDataGrid1.Columns[12].Name = \"Last Change Time\"
$mDataGrid1.Columns[13].Name = \"ifIndex\"
$mDataGrid1.Columns[13].Width = 50
$mDataGrid1.Size = New-Object System.Drawing.Size(850,800)
$MyForm.Controls.Add($mDataGrid1)
$mButton1 = New-Object System.Windows.Forms.Button
$mButton1.Text=\"Map Switch\"
$mButton1.Top=\"36\"
$mButton1.Left=\"28\"
$mButton1.Anchor=\"Left,Top\"
$mButton1.Size = New-Object System.Drawing.Size(100,23)
$MyForm.Controls.Add($mButton1)
$mButton1.Add_Click( {
$mButton1.Enabled = $False
$dec = ScanSwitchToPort ($mTextBox1.Text) $PortNum
$hex = AddrDecToHex $dec $PortNum
} )

function ScanSwitchToPort ($server, $PortNum) {
$MAC = Invoke-SNMPwalk $server \"2\" $PortNum
ForEach ($_ in $MAC.Data) {$mdataGrid1.Rows.Add(\"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", $_)}
return $MAC
}
function AddrDecToHex ($Decimal, $PortNum) {
$AddrDec = ($Decimal.OID).Replace($PortNum+\".\", \"\"«»)
$Hex = @()
ForEach ($Dec in $AddrDec) {
$Hex += $Dec.Split(\".\"«») | FOREACH {[CONVERT]::toString($_,\"16\"«»)}
}
$AddrHex = @()
For ($j=0; $j -lt $Hex.Count; $j=$j+6) {
For ($i= $j; $i -lt $j+6; $i++) {
if ($Hex[$i].Length -eq \"1\"«»)
{$Temp += \":\"+($Hex[$i]).Insert(\"0\", \"0\"«»)}
else {$Temp += \":\"+$Hex[$i]}
}
$AddrHex += $Temp.Remove(0,1)
Remove-Variable Temp
}
ForEach ($_ in $AddrHex) {$mdataGrid1.Rows.Add(\"\", \"\", \"\", \"\", \"\", \"\", \"\", $_, \"\", \"\", \"\", \"\", \"\", \"\"«»)}
return $AddrHex
}
[/code:1]

Je souhaite juste remplir une à plusieurs colonne par fonction, que l'on puisse voir les restitutions de résultats pendant le chargement plutôt que d'attendre toute les instructions.

Merci de votre aide.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 7 ans 7 mois #22210 par Laurent Dardenne
Laurent Dardenne écrit:

Un exemple simple qui reproduit ton pb suffit.

Un exemple simple ET fonctionnel :)
Qu'est-ce que tu veux qu'on fasse avec ça :S
Tu y ajoutes des lignes, mais le pb énoncé porte sur des colonnes...
En passant évite ce type de construction :
[code:1]ForEach ($_ in $MAC.Data)[/code:1]
Ceci est tout de même plus lisible :
[code:1]ForEach ($Data in $MAC.Data)[/code:1]

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 7 ans 7 mois #22211 par Yohann Journiac
Bonjour.

Heu ... donc.

Je crée mon DataGrid et je déclare mes en-tête de colonne.

Mon problème est que je ne connais pas la méthode pour remplir une colonne du DataGrid et ensuite remplir une seconde colonne et ce pas forcément dans le même ordre de déclaration donc en faite c'est pour cela le :
[code:1]
ForEach ($Data in $MAC.Data) {$mdataGrid1.Rows.Add(\"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", $Data)}
[/code:1]
puis le :
[code:1]
ForEach ($Hexa in $AddrHex) {$mdataGrid1.Rows.Add(\"\", \"\", \"\", \"\", \"\", \"\", \"\", $Hexa, \"\", \"\", \"\", \"\", \"\", \"\")}
[/code:1]

Le résultat donne :
\"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", $Data
\"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", $Data
\"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", $Data
\"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", $Data
\"\", \"\", \"\", \"\", \"\", \"\", \"\", $Hexa, \"\", \"\", \"\", \"\", \"\", \"\"
\"\", \"\", \"\", \"\", \"\", \"\", \"\", $Hexa, \"\", \"\", \"\", \"\", \"\", \"\"
\"\", \"\", \"\", \"\", \"\", \"\", \"\", $Hexa, \"\", \"\", \"\", \"\", \"\", \"\"
\"\", \"\", \"\", \"\", \"\", \"\", \"\", $Hexa, \"\", \"\", \"\", \"\", \"\", \"\"

Ne peut'on pas faire de Rows.Add() sur une colonne en particulier et recommencer plus tard pour une autre colonne ?

Merci.

Message édité par: Juronius, à: 26/08/16 13:41

Message édité par: Juronius, à: 26/08/16 13:42<br><br>Message édité par: Juronius, à: 26/08/16 13:44

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 7 ans 7 mois #22212 par Laurent Dardenne
Juronius écrit:

Mon problème est que je ne connais pas la méthode pour remplir une colonne du DataGrid

Il faut un tant soit peu étudier l'objet que l'on manipule.
Juronius écrit:

Ne peut on pas faire de Rows.Add() sur une colonne en particulier et recommencer plus tard pour une autre colonne ?

Si, une grille est constituée de lignes(Row) qui contiennent des colonnes/des cellules (Cells).
Il suffit donc d'adresser les indices, un exemple . C'est comme un tableau à deux dimensions, ici il s'agit de deux collections imbriqués.

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.090 secondes
Propulsé par Kunena