Gå til innhold

En liste med mange kolonner, med descr. på toppe


Anbefalte innlegg

Altså, jeg vil lage en liste med mange kolonner, og som har en beskrivelse på toppen...

Noe lignendes vedlegget, og at man klikker på en kolonne, så sorterer den seg alfabetisk etter de elementene som er underliggendes....

 

Er dette på noen måte mulig? :p

post-89333-1174737675_thumb.jpg

Lenke til kommentar
Videoannonse
Annonse

Til det kan du bruke DataGridView.

Du populerer en DataTable med innholdet du skal vise og starter visningen ved å sette

dataGridView1.DataSource = mindatatable;

 

kode eksempel (legg inn en datagridview på en form først)

DataTable dt = new DataTable();
//Definer kolonner
dt.Columns.Add("Overskrift1"); //datatype er string (dermed sorteres kolonnen på tekst)
dt.Columns.Add("Overskrift2"); //datatype er string (dermed sorteres kolonnen på tekst)
dt.Columns.Add("Overskrift3", typeof(int)); //datatype er int (dermed sorteres kolonnen på nummer)

//Legg til data
dt.Rows.Add("tekst1", "tekst2", 1);
dt.Rows.Add("htekst1", "atekst2", 2);
dt.Rows.Add("gtekst1", "btekst2", 3);
dt.Rows.Add("ftekst1", "ctekst2", 4);
dt.Rows.Add("etekst1", "dtekst2", 5);

dataGridView1.DataSource = dt;

Endret av wolf5
Lenke til kommentar

Jepp, ListView ville jeg også brukt.

 

Det er viktig å merke seg at elementer i første kolonne er "ListviewItems", mens elementer på resten av raden er "ListViewSubitems".

 

Når det gjelder sortering, så må du nok fikse dette selv. Det skulle ikke overraske meg om det finnes x antall tutorials som viser hvordan du implementerer dette.

 

           listView1.View = View.Details;
           listView1.CheckBoxes = true;
           
           listView1.Columns.Add("Status");
           listView1.Columns.Add("Fornavn");
           listView1.Columns.Add("Etternavn");
           listView1.Columns.Add("Adresse");

           ListViewItem lvi = new ListViewItem();
           lvi.Text = "Ansatt";

           ListViewItem.ListViewSubItem lvsi1 = new ListViewItem.ListViewSubItem(lvi, "Ola");
           ListViewItem.ListViewSubItem lvsi2 = new ListViewItem.ListViewSubItem(lvi, "Nordmann");
           ListViewItem.ListViewSubItem lvsi3 = new ListViewItem.ListViewSubItem(lvi, "Tøyengata 1");

           lvi.SubItems.Add(lvsi1);
           lvi.SubItems.Add(lvsi2);
           lvi.SubItems.Add(lvsi3);

           listView1.Items.Add(lvi);

post-47756-1174749329_thumb.png

Endret av xtc
Lenke til kommentar

Det er mange properties på datagridviewen som kan gjøre den en del penere enn den er som standard.

 

Her er et par properties jeg bruker på visning.

this.dataGridView1.AllowUserToAddRows = false; //Fjerner mulighet til å endre
this.dataGridView1.AllowUserToDeleteRows = false; //Fjerner mulighet til å endre
this.dataGridView1.AllowUserToOrderColumns = true; //Lar bruker flytte kolonner
this.dataGridView1.AllowUserToResizeRows = false; //låser høyden på radene

this.dataGridView1.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill; //Autosizer alle kolonner slik at de passer i hele bredden av kontrollen

this.dataGridView1.CellBorderStyle = System.Windows.Forms.DataGridViewCellBorderStyle.SingleVertical; //layout på radene
this.dataGridView1.ColumnHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Single; //Layout på headerne

this.dataGridView1.RowHeadersVisible = false; //Fjerner "MS Access"- velgerne helt vil venstre for hver rad
this.dataGridView1.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; //Gjør at du klikker rader, istedet for celler

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...