webForumDet fria alternativet

comboBox value och Display Value

11 svar · 330 visningar · startad av voigtann1

voigtann1Medlem sedan juni 20019 519 inlägg
#1

Försöker få igång en enkel (tycker jag) test på comboBox:

            for (int i = 0; i < 10; i++)
            {
                Jobs n = new Jobs();
                n.bob = "hej" + i;
                n.bobar = i;
                m.Add(n);
            }

            comboBox1.ValueMember = "bob";
            comboBox1.DisplayMember = "bobar";
            comboBox1.DataSource = m;

Men får bara projektnamn.Jobs som DisplayMember... vad gör jag för fel?

NickemannenMedlem sedan aug. 20003 575 inlägg
#2

Du kanske måste säga till DataSource:n vad m är för datatyp array?
t.ex. comboBox1.DataSource = (Jobs[])m.ToArray(typeof(Jobs));

om det är en ArrayList.

voigtann1Medlem sedan juni 20019 519 inlägg
#3

är en arraylist... saken är att den klarar spara:

namn.Jobs i rull listan 10x som loopen säger...

samma resultat med din kod ;)

cokMedlem sedan dec. 2005664 inlägg
#4

Bör du inte overida, ToString på Jobs?

voigtann1Medlem sedan juni 20019 519 inlägg
#5

cok skrev:

Bör du inte overida, ToString på Jobs?

fungera... men problemet är att få reda på "bobar" dvs ett ID nummer...

cokMedlem sedan dec. 2005664 inlägg
#6

Overida equal med det värde du vill ska jämnföras.

NickemannenMedlem sedan aug. 20003 575 inlägg
#7

Detta fungerar utmärkt konstigt att du får fel då.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Collections;

namespace WindowsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

            ArrayList arrayList = new ArrayList();

            //for (int i = 0; i < 10; i++)
            //    arrayList.Add(new TestObject(i, "Test "+i.ToString()));

            for (int i = 0; i < 10; i++)
            {
                TestObject t = new TestObject(i, "Test "+i.ToString());
                arrayList.Add(t);
            }
            /*
            arrayList.Add(new TestObject(0, "Test 0"));
            arrayList.Add(new TestObject(1, "Test 1"));
            arrayList.Add(new TestObject(2, "Test 2"));
            arrayList.Add(new TestObject(3, "Test 3"));
            arrayList.Add(new TestObject(4, "Test 4"));
            */

            this.comboBox1.DataSource = arrayList;
            this.comboBox1.DisplayMember = "View";
            this.comboBox1.ValueMember = "ID";
        }

        class TestObject
        {
            private int _intId;
            private string _strView;

            public TestObject(int id, string view)
            {
                this._intId = id;
                this._strView = view;
            }

            public int ID
            {
                get
                {
                    return this._intId;
                }
            }

            public string View
            {
                get
                {
                    return this._strView;
                }
            }
        }
    }
}

Kan du inte ge lite mer info av din kod?

voigtann1Medlem sedan juni 20019 519 inlägg
#8
     public override bool Equals(object obj)
        {
            return base.Equals(ShortName);
        }

??

NickemannenMedlem sedan aug. 20003 575 inlägg
#9

voigtann1 skrev:

     public override bool Equals(object obj)
        {
            return base.Equals(ShortName);
        }

??

Tycker det låter som en dålig lösning

voigtann1Medlem sedan juni 20019 519 inlägg
#10

Nickemannen: fungera kanon nu ;)

voigtann1Medlem sedan juni 20019 519 inlägg
#11

Hur gör jag att när man väljer i coboboxen så skrivs ID nummer ut i en textbox? på ett "bra" sätt.. dvs första valet ska alltid vara default värdet..
dvs test0 med ID = 0

NickemannenMedlem sedan aug. 20003 575 inlägg
#12

Lyssna på eventen SelectedIndexChanged eller SelectedValueChanged och sätt värdet på textboxen me SelectedValue från Comboboxen, kan vara bra att göra en säkerhetskoll så att SelectedValue inte är null eller innehåller något annat som inte ska visas.

130 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)