Avatar billede larry_hansen Nybegynder
21. april 2005 - 01:13 Der er 9 kommentarer og
1 løsning

Er der een der kan give et godt eks. på Combobox i WinForms?

Hejsa,

Er der een der kan give et godt eks. på hvordan man fylder en Combobox og udtrækker værdierne igen?

Jeg har forsøgt at fylde vha. et array og et dataset, men aner ikke hvordan jeg får fat i valuemember.

Hvis eks. jeg eks. jeg har en select stmt. "select id, navn from person" i en database, hvordan fylder man så comboboxen fra koden?

Jeg havde egentlig regnet med at DisplayMember var til navn og ValueMember var til id, således at når jeg vælger et navn så kan jeg fra koden få fat i både navn og id.

Hvis det er tilfældet hvordan gør man så det?

Håber der er een der kan hjælpe, på forhånd tak!
Avatar billede arne_v Ekspert
21. april 2005 - 07:23 #1
Jeg har det her eksempel liggende:

using System;
using System.Data;
using System.Data.OleDb;
using System.Drawing;
using System.Windows.Forms;

namespace DefaultNamespace
{
    public class MainForm : Form
    {
        private ComboBox comboBox1;
        public MainForm()
        {
            InitializeComponent();
        }
        [STAThread]
        public static void Main(string[] args)
        {
            Application.Run(new MainForm());
        }
        private void InitializeComponent() {
            comboBox1 = new ComboBox();
            SuspendLayout();
            comboBox1.Location = new System.Drawing.Point(50, 50);
            comboBox1.Size = new System.Drawing.Size(150, 25);
            OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\Database\\MSAccess\\Test.mdb");
            con.Open();
            OleDbDataAdapter da = new OleDbDataAdapter("SELECT * FROM T1", con);
            DataSet ds = new DataSet();
            da.Fill(ds, "T1");
            comboBox1.DataSource = ds.Tables["T1"];
            comboBox1.DisplayMember = "F2";
            comboBox1.ValueMember = "F1";
            ClientSize = new Size(250, 400);
            Controls.Add(comboBox1);
            Text = "Combobox test";
            ResumeLayout(false);
        }
    }
}
Avatar billede arne_v Ekspert
21. april 2005 - 07:25 #2
T1->person
F1->id
F2->navn
Avatar billede burningice Nybegynder
21. april 2005 - 07:30 #3
og når du skal hente værdierne ud igen skal du så bruge

SelectedText (til displaymember)
SelectedValue (til valuemember)
SelectedItem (til at få fat i hele objectet)
Avatar billede larry_hansen Nybegynder
21. april 2005 - 09:35 #4
Tusind tak til Arne og Cyberfessor..
Det er testet og virker perfekt!
Avatar billede burningice Nybegynder
21. april 2005 - 11:28 #5
så skulle du måske give pointene til arne fremfor at tage dem selv?
Avatar billede larry_hansen Nybegynder
21. april 2005 - 19:22 #6
haha! Godt så! det var sgu ikke så smart det er første gang jeg prøver det her.. hvordan kan jeg gøre det om ?
Avatar billede larry_hansen Nybegynder
21. april 2005 - 19:27 #7
Jeg undskylder mange gange, men kan man ikke gå ind og slette dem fra mig og sætte dem ind hos Arne? Og ellers må der vel være en admin der kan ændre det...
Avatar billede arne_v Ekspert
21. april 2005 - 19:41 #8
Metoden her:
  http://expfaq.1go.dk/?id=30#giv_flere_point
kan også bruges i dette tilfælde.
Avatar billede arne_v Ekspert
21. april 2005 - 19:42 #9
Avatar billede burningice Nybegynder
21. april 2005 - 20:56 #10
:)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester