Şu anda bir C# uygulaması geliştiriyorum.Enumlar ve Birleşik Kutularda C#
Seçili ayı elde etmek için açılan kutuyu içeren bir enum kullanmalıyım. Ben enum oluşturmak için aşağıdaki adres: Sonra kullanarak combobox initialize
enum Months
{
January = 1,
February,
March,
April,
May,
June,
July,
August,
September,
October,
November,
December
};
aşağıdaki: Ben seçilen enum almaya çalıştıklarında Bu kod biraz çalışıyor
cboMonthFrom.Items.AddRange(Enum.GetNames(typeof(Months)));
ancak sorundur seçilen aya
için değer değerini aşağıdaki kullanmış açılan kutusundan numaralandırıcıyı almak için:
private void cboMonthFrom_SelectedIndexChanged(object sender, EventArgs)
{
Months selectedMonth = (Months)cboMonthFrom.SelectedItem;
Console.WriteLine("Selected Month: " + (int)selectedMonth);
}
Bununla birlikte, yukarıdaki kodu çalıştırmayı denediğimde, bir hatayla karşılaşıyorsunuz: System.InvalidCastException
türünde bir ilk fırsat istisnası oluştu.
Neyi yanlış yaptım. Doğru değişikliklere
Mükemmel. 'Months' değerlerine geri açılan kutunun içine dizeleri koymak ve sonra bunları ayrıştırmak için gerekli değildir – Boardy
teşekkür ederiz. Sadece 'Months' değerlerini kendiniz saklayın. – Timwi
Sen açılan kutunun dize değerlerini saklamak ve numaralandırma olarak almak için gerekiyordu. Sen açılan kutu öğesi olarak enum değerleri ekleyin VEYA dize olarak onları almak ve numaralandırma dönüştürmek ya sahiptir. Ben ikinci yapmak önerilmektedir nedeni budur. combobox içine gerçek değerleri koymak için – SadullahCeran