» »

[C#] toString ne dela

[C#] toString ne dela

teac ::

Imam en class, ki je podedovan od ComboBox
class MyFeedComboBox : System.Windows.Forms.ComboBox
{
    string _ime;

    public override string ToString() { return _ime; }
}
Potem nekje v kodi ustvarim nov objekt:
MyFeedComboBox myCombo = new MyFeedComboBox();
comboBox.Items.Add(myCombo);
Ko hočem dodat to v comboBox, naj bi objekt, ki ga dodajam poklical svojo ToString() metodo. Tu pa se pojavi moj problem. Tega mi ne naredi. Zadnji stavek dela v redu, če napišem tako:
comboBox.Items.Add(myCombo.ToString());
Zakaj mi ne pokliče svoje ToString metode?
  • spremenilo: teac ()

darkolord ::

Funkcija Add() kot parameter sprejme objekt in ne direkt stringa, tako da ne pokliče toString()... Vsaj tako je v 2005

Zgodovina sprememb…

rokpok ::

Funkcija add sprejme objekt (kot je že darkolord rekel) in kasneje nad tistim objektom pokliče funkcijo ToString () katere vrnjena vrednost je potem prikazana na seznamu.

A ti tvoj objekt samo ne pokaže v comboBox-u ali ti ga sploh ne doda? Nevem, malo čudno mi zgleda vse to. Kaj pa je naloga tega MyFeedComboBox-a oziroma zakaj deduje od System.Windows.Forms.ComboBox? Če jaz zdaj to prav razumem ti v comboBox dodajaš še en comboBox... 8-O
Rad bi bil pingvin.

Zgodovina sprememb…

  • spremenil: rokpok ()

MaCoFaCo ::

Če sem te prav zastopil... Jaz sem naredil spodnjo kodo in dela kot je treba (Visual Studio 2005).

class MyItem
{
    public MyItem(string text, object value)
    {
        this.text = text;
        this.value = value;
    }

    private string text;
    private object value;

    public override string ToString()
    {
        return text;
    }
}

private void Form1_Load(object sender, EventArgs e)
{
    comboBox1.Items.Add(new MyItem("item1", "value1")); //v combotu prikazan "item1"
    comboBox1.Items.Add(new MyItem("item2", "value2")); //v combotu prikazan "item2"

    MyItem item1 = comboBox1.Items[0] as MyItem;
    MyItem item2 = comboBox1.Items[1] as MyItem;
}

teac ::

Ta objekt mi doda v combobox, ampak brez teksta, ker ne kliče toString. Če pa sam dodam toString (torej Add(myObject.toString()), ko dodajam objekt v comboBox, pa se tekst izpiše.
Naloga tega mojega comboBoxa? Nič, pač sem si naredil svoj class, ker rabim še nekaj drugih informacij, ki jih pri comboBox-u nimam kam vpisat.

rokpok ::

Zakaj pa mora ta tvoj objekt (MyFeedComboBox) dedovati od System.Windows.Forms.ComboBox?
Rad bi bil pingvin.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

C# težava

Oddelek: Programiranje
233713 (2559) mladec
»

[Java] Urejanje baze z JTable

Oddelek: Programiranje
81014 (798) vonNeumann
»

c# datagridview in combox

Oddelek: Programiranje
131207 (1095) OmegaM
»

[Visual C#] TableAdapter

Oddelek: Programiranje
61134 (1010) detroit
»

c# - problem

Oddelek: Programiranje
161415 (1134) GeeDee

Več podobnih tem