프로그램/DotNet
Combobox에 두가지 값 설정하기 [C#]
milktea.kang
2011. 2. 28. 16:54
Combobox에 두가지 값 설정하기
무슨 말 이냐고?
그러니까 콤보박스에 보이는 Text 값이랑 안보이는 Value값을 적용해서
두가지 값을 설정하는 거시여
MessageBox.Show(this.comboBox1.SelectedValue.ToString());
MessageBox.Show(this.comboBox1.SelectedText.ToString());
이 두 가지 값이 다르게 나온다니깐 그러네...사람말을 못믿나?
aa를 선택했는데 00이란 값이 필요할 때 써먹으라고
string[] tmpValues = new string[]{"00=aa","01=gg","02=cc","03=kk","04=ee"};
System.Collections.ArrayList alist = new System.Collections.ArrayList();
for (int a = 0; a < tmpValues.Length; a++)
{
alist.Add(new GenreValues(tmpValues[a]));
}
//이름순으로 정렬해보까
alist.Sort();
//화면에 표시할 놈은 누구냐? Val2가 누구냐? GenreValues클래스에 프라퍼티 변수다 됐냐!
this.comboBox1.DisplayMember = "Val2";
//값으로 설정할 놈은 누구냐? Val1가 누구냐? GenreValues클래스에 프라퍼티 변수라고~!
this.comboBox1.ValueMember = "Val1";
//배열을 통째로 받아주마~!
this.comboBox1.DataSource = alist;
#밸류 클래스
sort기능을 쓰기 위해서는 IComparable을 상속받아서 구현해줘야 한다고 컴파일러녀석이 버럭 화를 내길래 큰맘먹고 함 구현해준다 ㅡㅡ;;;
IComparable상속 안하고 콤보박스에서 소트 하면 우째돼냐고?
해봐~! 어찌돼나 ㅋㅋㅋ 콤보박스에 클래스명만 죽~~나올꺼야 ㅋㅋ
어이없게 또 클래스 이름에 태클 걸지~! 제너럴도 제대로 못쓰냐고?
잘 봐라 저게 제너럴인지 니미럴인지 장르인지 무식한 쉬리야!!
장르밸류값 설정할 일이 있어서 장르 함 써봤다 됐냐
맘에 안들면 제너럴로 바꾸던가!(퍼가는 주제에 말이많어 ㅡㅡ;;)
public class GenreValues : IComparable
{
private string val_1;
private string val_2;
public GenreValues(string strValue)
{
string[] tmpArr = strValue.Split('=');
val_1 = tmpArr[0];
val_2 = tmpArr[1];
}
public GenreValues(string strValue1, string strValue2)
{
val_1 = strValue1;
val_2 = strValue2;
}
//요놈들이 프라퍼티 변수들이라고
public string Val1 { get { return val_1; } }
public string Val2 { get { return val_2; } }
#region IComparable Members
//요것이 소트를 위한 비교 부분
//뭘 가지고 비교할거냐고 컴파일러가 버럭버럭 화를내는 이유가 이거지 ㅡㅡ;;;
int IComparable.CompareTo(object obj)
{
GenreValues gv = (GenreValues)obj;
return String.Compare(this.Val2, gv.Val2);
//throw new NotImplementedException();
}
#endregion
}