listbox를 이용해서 각 리스트 박스의 인덱스 번호와 아이템명을 가지고오자
도구상자에서 form으로 ListBox 와 TextBox를 가지고와서 배치 해주자.
속성창 - 디자인 - Name을 나중에 설정하기 쉽게 listBox1 .. 2... 3으로 바꿔준다.
인덱스와 아이템을 표현하기 위한 TextBox도 잘 배치해 Name을 txtSitem1..2..3 / txtSindex 1,,,2,,,,3 이런식으로 바꿔준다
원래 처음 배치시 listBox는 이런식으로 비어서 표현이 되는데 값을 채워줘야한다.
list value를 채우는 방법은 총 세가지이다.
1) Form 디자인 창에서 문자열 컬렉션 편집기를 이용해서 추가하기
- 리스트박스를 눌러 우상단의 네모 버튼을 눌러 편집한다.
2) Form1 생성자안에 작성하기 ( 최적 )
public Form1() //생성자 함수 - 객체생성시 자동실행 / form이 뜨자마자 하는 작업은 생성자함수에서 작업하기
{
InitializeComponent();
listBox2.Items.Add("오클랜드(뉴질랜드)");
listBox2.Items.Add("오사카(일본)");
listBox2.Items.Add("아델레이드(호주)");
listBox2.Items.Add("웰링턴(뉴질랜드)");
listBox2.Items.Add("도쿄(일본)");
listBox2.Items.Add("퍼스(호주)");
listBox2.Items.Add("취리히(스위스)");
listBox2.Items.Add("제너바(스위스)");
listBox2.Items.Add("멜버른(호주)");
listBox2.Items.Add("브리즈번(호주)");
}
listbox.Items.Add("")는 Form1_Load창에서도 가능
3) DataSource를 사용해 값 입력하기
List<string> happiness = new List<string>() //class 의 형태
{
"핀란드","덴마크","아이슬란드","스위스","네덜란드","룩셈부르크","스웨덴","노르웨이","이스라엘","뉴질랜드"
};
listBox3.DataSource = happiness;
}
class의 형태로써 happiness 객체를 만들어 값을 넣고 DataSource함수를 이용해 listbox3에 입력해준다.
-------
인덱스와 아이템명 띄우기
1. 리스트 박스를 클릭하고 속성의 이벤트 설정창에서 TextChanged의 목록중 "listBox1_SelectedIndexChanged"를 눌러 메소드를 생성해준다. 이는 listBox1를 클릭하면 이벤트가 발생하고 이 메소드가 실행된다는 뜻이다.
listbox 1,2,3 모두 메소드를 만들어준다
2.
ListBox i = sender as ListBox
txtindex1.Text = i.SelectedIndex.ToString();
txtitem1.Text = i.SelectedItem.ToString();
첫번째 코드는 ListBox형의 객체 i 를 선언하고 / sender(이벤트를 보내는 객체) 를 ListBox형으로 하겠다는 뜻이다.
결국 리스트박스에서 값을 선택하면 sender를 통해 i로 전달된다는 뜻이다.
txtindex1.Text = i.SelectedIndex > i를 SelectedIndex로 Tostring해서 txtindex1의 텍스트로 전달하겠다는 뜻.
아이템값은 txtitem1.Text = i.SelectedItem.ToString(); 으로 전달.
다른폼도 이름만 변경하여 지정하면 정상적으로 폼을 완성할수있다.
'C#' 카테고리의 다른 글
027_ComboBox를 이용한 성적계산기 (0) | 2022.04.06 |
---|---|
026_ComboBox (0) | 2022.04.06 |
024_scrollBar (0) | 2022.03.30 |
023_ScoreCalculator (0) | 2022.03.30 |
022_Radiobutton & GroupBox (0) | 2022.03.30 |