Bonjour,
J'ai un lisView en mode LargeIcon avec 10 nombres et 10 textBox d'un autre coté. Je voudrais transférer les nombres de mon listView dans mes textBox items 1 dans textBox1 etc.
Et là je bloque. Une aide svp ?
Cordialement
Bonjour,
J'ai un lisView en mode LargeIcon avec 10 nombres et 10 textBox d'un autre coté. Je voudrais transférer les nombres de mon listView dans mes textBox items 1 dans textBox1 etc.
Et là je bloque. Une aide svp ?
Cordialement
Bonjour,
J'ai lu ton post et là je bloque.
Un peu plus d'explications et un bout de code seraient les bienvenus.
La tâche est simple en soit, mais qu'as-tu fait? Où bloques-tu?
En fonction de ce que tu as fait, de la manière dont tu as modélisé ton programme, la solution ne sera pas la même.
Je t'invite à lire ou relire les règles du forum.
Un âne se croit savant parce qu'on le charge de livres (proverbe américain)
N'oubliez pas de avant de
Pas de question techniques par MP, c'est contre la philosophie du forum
Bonjour,
Je peut pas expliquer mieux j'ai dans mon listView dix nombres que je voudrais au click d'un button réécrire dans le tableau de textBox. Donc j'ai bouclé sur le listView puis sur le tableau de string qui contient les textBox mais le code est pas bon et je sais pas comment faire c'est là que je bloque.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 resultat = new string[] { T01.Text, T02.Text, T03.Text, T04.Text, T05.Text, T06.Text, T07.Text, T08.Text, T09.Text, T10.Text}; for (k = 0; k < relever_numeros.Items.Count; k++) { for (j = 0; j < resultat.Length; j++) { string donne = relever_numeros.Items[k].Text; resultat[j] = donne.ToString(); } }
Je voudrais en réalité raccourcir ce code proprement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 resultat = new string[] { T01.Text, T02.Text, T03.Text, T04.Text, T05.Text, T06.Text, T07.Text, T08.Text, T09.Text, T10.Text, T11.Text, T12.Text, T13.Text, T14.Text, T15.Text, T16.Text, T17.Text, T18.Text, T19.Text, T20.Text}; /* */ for (k = 0; k < relever_numeros.Items.Count; k++) { T01.Text = relever_numeros.Items[0].Text; T02.Text = relever_numeros.Items[1].Text; T03.Text = relever_numeros.Items[2].Text; T04.Text = relever_numeros.Items[3].Text; T05.Text = relever_numeros.Items[4].Text; T06.Text = relever_numeros.Items[5].Text; T07.Text = relever_numeros.Items[6].Text; T08.Text = relever_numeros.Items[7].Text; T09.Text = relever_numeros.Items[8].Text; T10.Text = relever_numeros.Items[9].Text; T11.Text = relever_numeros.Items[10].Text; T12.Text = relever_numeros.Items[11].Text; T13.Text = relever_numeros.Items[12].Text; T14.Text = relever_numeros.Items[13].Text; T15.Text = relever_numeros.Items[14].Text; T16.Text = relever_numeros.Items[15].Text; T17.Text = relever_numeros.Items[16].Text; T18.Text = relever_numeros.Items[17].Text; T19.Text = relever_numeros.Items[18].Text; T20.Text = relever_numeros.Items[19].Text; }
Tu pourrais le faire directement via Binding, par exemple un truc comme çà fonctionne
Avec une classe Bindé sur le context, les textbox se mettent à jour
Code : Sélectionner tout - Visualiser dans une fenêtre à part <TextBox Name="Txt1" Text="{Binding Path=Test[0]}" Height="25" Width="115" />
Après dans ta boucle, tu met simplement à jour le tableau
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44 public class TestTab : INotifyPropertyChanged { private string[] test = new string[2]; public string[] Test { get { return this.test; } set { this.test = value; this.NotifyProperty("Test"); } } public TestTab() { test[0] = "test1"; test[1] = "test2"; } public void UpdateRec(int index, string value) { test[index] = value; this.NotifyProperty("Test"); } #region INotifyPropertyChanged Membres public event PropertyChangedEventHandler PropertyChanged; public void NotifyProperty(string p) { if (PropertyChanged != null) { PropertyChanged(this,new PropertyChangedEventArgs(p)); } } #endregion }
Un truc dans ce style
Si tu veux optimiser, tu ne lance pas la notif à chaque maj, mais une fois qu'elles sont toutes finie.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 for (k = 0; k < relever_numeros.Items.Count; k++) { this.testTab.UpdateRec(k,relever_numeros.Items[k].Text); }
Et si tu ne connais pas forcément le nombre, tu peux passer par une liste
" Je préfère comprendre les gens qui ne me comprennent pas "
bonjour
Si tu est en Winfom l'idee de les binder est interessante...
Neanmoins ,il faut virer le tableau au profit d'un list<>....
Ensuite on peut les recuperer et les binder:
bon code...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace WinCopiieListView { public partial class Form1 : Form { // 'un list<> est plus approprie qu'un tableau private List<TextBox> l = new List<TextBox>(); public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { //fill listView1 Random rnd = new Random() ; for (int i = 0; i < 10 ; i++) { ListViewItem lvitem = new ListViewItem(rnd.Next(50, 1000).ToString()); listView1.Items.Add(lvitem); } // recupere les textboxes dissimines sur le form Control ctl = this; while (ctl !=null) { if (ctl.GetType() ==typeof( TextBox)) { l.Add((TextBox)ctl); } ctl = this.GetNextControl(ctl,true ); } //les binds chacun à un listviewitem for (int i = 0; i < l.Count ; i++) { l[i].DataBindings.Add("Text", listView1.Items[i], "Text"); } } } }
Oups ! j'ai même pas demandé si c'était du winform ou WPF ! autant pour moi !
" Je préfère comprendre les gens qui ne me comprennent pas "
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager