Listview uitlijnen

Status
Niet open voor verdere reacties.

EdjeCageman

Gebruiker
Lid geworden
24 okt 2011
Berichten
273
People,

Ik ben bezig om een verkooplijst aan te maken. De producten die worden aangeklikt worden on-screen in een soort van verkoopbonnetje getoond.
Nu wil ik dat de artikel netjes gescheiden wordt van de prijs, dus dat er links uitgelijnd de artikelen komen en rechts de prijs:

Artikel | €50,-
Artikel 2 | €20,-
...
...
...
etc

wat hij nu nog doet is:
Artikel 50 Artikel 2 20 Artikel 3 30 ....etc totdat de rij vol is
Artikel 50 Artikel 2 20 Artikel 3 30 ....etc totdat de rij vol is

Dit is de huidige code:
Code:
            // verkooplijst

                       int lijstbreedte = (getBreedte() / 3);
            int lijsthoogte = (getHoogte() - 57);
            this.BackColor = Color.SteelBlue;
            productlijst = new ListView();
            productlijst.Name = "productlijst";
            productlijst.Location = new Point(25, 25);
            productlijst.Size = new Size(lijstbreedte, lijsthoogte);
            productlijst.Columns.Add("Artikel", -2, HorizontalAlignment.Left);

            productlijst.Columns.Add("Prijs", -2, HorizontalAlignment.Left);
            Controls.Add(productlijst);
Ik hoop dat ik een beetje duidelijk ben:)
Alvast bedankt,

Groetjes
Edje
 
Laatst bewerkt:
Ik zou 2 textboxen aanmaken, 1tje voor artikel zelf en andere voor de prijs.
en wanneer je op de knop voegtoe drukt dat het er mooitjes in een listView zet.

Code:
    public void voegToebutton_Click (object sender, EventArgs e)
    {
      string[] artikelPrijs = new string[] 
      {
        textBox1.Text, // 
        textBox2.Text
      };
      ListViewItem lijstItems = new ListViewItem(artikelPrijs);

      // zet deze artikelPrijs op de juiste positie in listView
      listView1.Items.Add(lijstItems);
      textBox1.Clear();
      textBox2.Clear();
   }



Met vriendelijke groetjes, jim
 
Het vullen is niet het probleem, maar de kolommen aanmaken. Ik wil gewoon 2 kolommen aanmaken en daarin moet dan de betreffende info komen.
Volgens MSDN zou bovenstaande code de oplossing zijn, maar 't werkt niet.
 
Zo te zien zet je de column width op -2, zet ze eens op 100 of zo.

En misschien moet je nog de View property op 'Details' zetten om de columns zichtbaar te maken.
 
-2 heeft als functie dat het automatisch wordt uitgelijnd, daar lag het probleem niet, was die property ja:)

Code:
productlijst.View = View.Details;

eraan toegevoegd en hij werkt:)

Maar nu wil ik de artikelen in de lijst gooien. Dus netjes dat alles in de goede kolom komt te staan maar nu krijg ik de tekst onder elkaar.

Zie voorbeeld:
Voorbeeld.png

de code die ik gebruik:

Code:
        public void vulbox()
        {
            productlijst.Items.Clear();
            ListViewItem item1 = new ListViewItem();
            ListViewItem item2 = new ListViewItem();
            ListViewItem item3 = new ListViewItem();

            foreach(String artikel in verkoop.getVerkooplijst())
            {
                string[] a = artikel.Split(' ');
                item1.Checked = true;
                item1.SubItems.Add("artikelcode");

                item2.Checked = true;
                item2.SubItems.Add(a[0]);

                item3.Checked = true;
                item3.SubItems.Add(a[1]);

                
                //productlijst.Items.Add("artikelnr",a[0], a[1] );
                //Console.WriteLine("Dit is 0: "+a[0]);
                //Console.WriteLine("Dit is 1:"+a[1]);
            }
            productlijst.Items.AddRange(new ListViewItem[] { item1, item2, item3});
        }
    }

Ook dit is de dmv de voorbeeldcode van MSDN, zie ik hier ook iets over het hoofd?
Het deel wat uit-gecommit is had ik eerder al geschreven miss dat die alleen maar simpel verbeterd hoeft te worden?
 
Laatst bewerkt:
Nevermind:D


Code:
public void vulbox()
        {
            productlijst.Items.Clear();
            string[] a = null;

            foreach(String artikel in verkoop.getVerkooplijst())
            {
                int i = 0;
                a = artikel.Split(' ');
                ListViewItem item1 = new ListViewItem(a,i);
                productlijst.Items.AddRange(new ListViewItem[] { item1 });
                i++;
            }
        }
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan