Flash info

"La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information. "

Albert Einstein (1879-1955)

 
Accueil arrow Forum

Bienvenue sur le forum PowerShell-Scripting.com

 
marcci
Utilisateur

PowerShelleur Amateur
Messages: 90
graphgraph
Karma: 10  
DataBindings partiellement cassé - 21/06/17 11:11 Bonjour à tous,

je vais essayer d'expliquer clairement mon problème, merci de me pardonner si ce n'est pas le cas

J'ai 3 textbox, 1 bouton update et 1 DataTable.

La textbox1 ne sert qu'à la saisie
La textbox2 sert à la saisie et est "bindé" à la DataTable.
La textbox3 sert au contrôle du contenue de la DataTable.
Le bouton update copie le text de textbox1 dans la datatable.

Fonctionnement du code:
Je fais une saisie dans textbox1.
Je click sur le bouton Update.
On voit dans la textbox3 que la Datable est bien mise à jour et que la textbox2 est bien "bindé".

Maintenant je fais une saisie dans la textbox2 et presse "Entrée".
On voit dans la textbox3 que la DataTable est bien mise à jour.
Par contre si maintenant on click sur update, la DataTable est bien mise à jour mais textbox2 n'est plus "bindé" en lecture de la DataTable, mais en éciture toujours.

Quelqu'un sait-il pourquoi le fait de saisir dans une textbox "bindé" casse le lien en lecture et pas en écriture ?
Et si oui comment y remédier ?

Merci de votre aide.

Code:

  #Initialisation d'une DataTable $DataTable = New-Object System.Data.DataTable [void]$DataTable.Columns.Add('Col1') $DataTable.Rows.Add('coucou')|Out-Null [reflection.assembly]::loadwithpartialname("System.Drawing") | Out-Null [reflection.assembly]::loadwithpartialname("System.Windows.Forms") | Out-Null #Ce produit quand on click sur le bouton Update [scriptblock]$DataUpdate =  {     $DataTable.Rows[0].Col1 $textbox1.Text     $textbox3.Text $DataTable.Rows[0].Col1      } #Ce produit quand on appuis "entrée" dans la textbox2 [System.Windows.Forms.KeyPressEventHandler]$CheckDataTable =  {     if ($_.KeyChar -eq 13)     {         $textbox3.Text $DataTable.Rows[0].Col1     } } $form = New-Object System.Windows.Forms.Form $form.ClientSize = New-Object System.Drawing.Size(200,150) $form.Name "form" $form.Text "Form" $textbox1 = New-Object System.Windows.Forms.TextBox $textbox1.Location = New-Object System.Drawing.Point(50,5) $textbox1.Size = New-Object System.Drawing.Size(100,20) $textbox1.TextAlign 'Left' $form.Controls.Add($textbox1) $textbox2 = New-Object System.Windows.Forms.TextBox $textbox2.Location = New-Object System.Drawing.Point(50,30) $textbox2.Size = New-Object System.Drawing.Size(100,20) $textbox2.TextAlign 'Left' $textbox2.DataBindings.add((New-Object system.windows.forms.binding("Text",$DataTable,"Col1"))) $textbox2.DataBindings.Item('Text').DataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnPropertyChanged $textbox2.add_KeyPress($CheckDataTable) $form.Controls.Add($textbox2) $textbox3 = New-Object System.Windows.Forms.TextBox $textbox3.Location = New-Object System.Drawing.Point(50,85) $textbox3.Size = New-Object System.Drawing.Size(100,20) $textbox3.TextAlign 'Left' $textbox3.Enabled $false $form.Controls.Add($textbox3) $bouton = New-Object System.Windows.Forms.Button $bouton.Location = New-Object System.Drawing.Point(60,55) $bouton.Size = New-Object System.Drawing.Size(75,20) $bouton.Text "Update" $bouton.TabIndex 1 $bouton.add_click($DataUpdate) $form.Controls.Add($bouton) $form.ShowDialog()| Out-Null

  | | L'administrateur a désactivé l'accés public en écriture.
Laurent Dardenne
Utilisateur

PowerShelleur Platinum
Messages: 5724
graph
Karma: 209  
Re:DataBindings partiellement cassé - 22/06/17 11:05 Salut,
as-tu vérifié si le principe de ton code fonctionne en C# ?
Tutoriels PowerShell
  | | L'administrateur a désactivé l'accés public en écriture.
marcci
Utilisateur

PowerShelleur Amateur
Messages: 90
graphgraph
Karma: 10  
Re:DataBindings partiellement cassé - 22/06/17 12:01 Mouais c#, c'est quand même moins simple que powershell.

Je m'y suis mis il y à peut et je galère encore pas mal sur la philosophie
  | | L'administrateur a désactivé l'accés public en écriture.
Laurent Dardenne
Utilisateur

PowerShelleur Platinum
Messages: 5724
graph
Karma: 209  
Re:DataBindings partiellement cassé - 22/06/17 14:07 Utilise la portée script: pour les variables utilisées dans un eventhanlder. A tester... Tutoriels PowerShell
  | | L'administrateur a désactivé l'accés public en écriture.
© 2020 PowerShell-Scripting.com