Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Enum till en combobox

Postades av 2008-04-15 21:26:03 - Johnny Lätt, i forum c# (c-sharp), Tråden har 6 Kommentarer och lästs av 1362 personer

I min klassfil:

public enum TypeOfSeats
{
Passanger_Bus,
Passenger_Train_Cabin,
Airplane_Cabin
}

I min GUIfil:

private void FillSeatTypeList()
{
cmbSeatType.Items.AddRange(Enum.GetNames(typeof(TypeOfSeats)));
cmbSeatType.SelectedIndex = (int)BusType.PassangerBus;
}

Det jag vill är att ändra innehållet i comboboxen så att den värdena (texten) kan innehålla blanksteg.
Passanger Bus
Passenger Train Cabin
Airplane Cabin

Jag vet att varje medlem i enumen har ett int värde, men hur får jag fatt i det och ändra innehållet som jag önskar?


Svara

Sv: Enum till en combobox

Postades av 2008-04-16 08:36:59 - Ruben Jönsson

Enums kan dekoreras med sträng värde:

Se www.codeproject.com/KB/cs/stringenum.aspx

eller blog.spontaneouspublicity.com/2008/01/17/associating-strings-with-enums-in-c/

/Ruben


Svara

Sv:Enum till en combobox

Postades av 2008-04-16 11:36:11 - Johnny Lätt

blog.spontaneouspublicity.com/2008/01/17/associating-strings-with-enums-in-c/

Exemplet ovan är så jag vill ha det, men jag får det inte till att fungera ändå.

I mitt fall borde Enumen se ut så här

public enum TypeOfSeats
{
[Description("Passanger Bus")]
Passenger_Bus,
[Description("Train Cabin")]
Train_Cabin,
[Description("Airplane Cabin")]
Airplane_Cabin
}

Men jag får kompileringsfel
The type or namespace name 'Description' could not be found (are you missing a using directive or an assembly reference?)

Dessutom är jag osäker på var jag ska lägga in funktionen, ska den var i classen eller i GUI:en?

public static string GetEnumDescription(Enum value)
{
FieldInfo fi = value.GetType().GetField(value.ToString());

DescriptionAttribute[] attributes =
(DescriptionAttribute[])fi.GetCustomAttributes(
typeof(DescriptionAttribute),
false);

if (attributes != null &&
attributes.Length > 0)
return attributes[0].Description;
else
return value.ToString();
}

Min combobox heter cmbSeatType.

Det ska väl tilläggas att jag är nybörjare med programmering.

Tackar Ruben för den hjälp jag fick, även om jag inte har lyckats ännu. Hoppas på ny hjälp.


Svara

Sv: Enum till en combobox

Postades av 2008-04-16 12:52:43 - Ruben Jönsson

Hej,

Först och främst så måste du ha med

using System.ComponentModel


där du deklarerar din enum, alltså i filen för klassen.

Sedan måste du ha med

using System.ComponentModel;
using System.Reflection;


i filen där GetEnumDescription() funktionen finns. Denna kan du lägga i en egen klass eller generell utility klass, kanske i en egen dll (ett eget projekt i solutionen). Detta är en funktion som inte behöver veta något om varken din klass eller comboboxen. Du kanske kan göra ett eget namespace för diverse hjälpklasser som du sedan kan använda i andra projekt.

Hoppas detta hjälper.

/Ruben


Svara

Sv:Enum till en combobox

Postades av 2008-04-17 12:07:36 - Johnny Lätt

Tackar för tiden du lägger ner på mig, men jag får det fortfarande inte till att fungera.

I min GUI har jag följande funktion

 private void FillSeatTypeList()
 {  
       cmbSeatType.Items.AddRange(Enum.GetNames(typeof(TypeOfSeats)));
       cmbSeatType.SelectedIndex = (int)BusType.PassangerBus;
  }


I min min fil där jag deklarerar Enumen ser ut så här:
using System;
using System.Collections.Generic;
using System.Text;
using System.Diagnostics;
using System.ComponentModel;
using System.Reflection;


public enum TypeOfSeats
{    
    [Description("Passanger Bus")]
    Passenger_Bus,
    [Description("Train Cabin")]
    Train_Cabin,
    [Description("Airplane Cabin")]
    Airplane_Cabin  
}


namespace GeneralBookingSystem
{
   public class SeatBooking
    {
        .......(allt vad klassen innehåller)
     }
}


Och till sist filen med Funktionen för att hämta värdet:
using System;
using System.Collections.Generic;
using System.Text;
using System.ComponentModel;
using System.Reflection;


namespace GeneralBookingSystem
{
    class GetEnum
    {
        public static string GetEnumDescription(Enum value)
        {
            FieldInfo fi = value.GetType().GetField(value.ToString());

            DescriptionAttribute[] attributes =
                (DescriptionAttribute[])fi.GetCustomAttributes(
                typeof(DescriptionAttribute),
                false);

            if (attributes != null &&
                attributes.Length > 0)
                return attributes[0].Description;
            else
                return value.ToString();
        } 

    }
}


Svara

Sv: Enum till en combobox

Postades av 2008-04-17 13:10:38 - Ruben Jönsson

Du kan inte använda Enum.GetNames utan måste gå igenom alla enum värdena med foreach och lägga till dem en och en med namnet från Description texten och hjälpmetoden.

Något i stil med:

foreach(TypeOfSeats seat in Enum.GetValues(typeof(TypeOfSeats))){
  cmbSeatType.Items.Add(EnumHelper.GetEnumDescription(seat));
}
cmbSeatType.SelectedText=EnumHelper.GetEnumDescription(defaultTypeOfSeats);


/Ruben


Svara

Sv:Enum till en combobox

Postades av 2008-04-21 13:07:02 - Johnny Lätt

Tack för all hjälp.
Nu har det löst sig.


Svara

Nyligen

  • 08:28 Butiksskyltar: Hur upplever utbude
  • 22:31 Slappna av
  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 812
27 960
271 761
401
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies