webForumDet fria alternativet

comboBox value och Display Value

.NET

11 svar · 330 visningar · startad av voigtann1

Medlem sedan juni 20019 519 inlägg
Frågan#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?

Medlem 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.

Medlem 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 ;)

Medlem sedan dec. 2005664 inlägg
#4

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

Medlem 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...

Medlem sedan dec. 2005664 inlägg
#6

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

Medlem 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?

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

??

Medlem 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

Medlem sedan juni 20019 519 inlägg
#10

Nickemannen: fungera kanon nu ;)

Medlem 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

Medlem 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.

256 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)