10강

성연주·2021년 9월 7일
0

ArrayList

using System.Collections; // = import java.util.ArrayList;

ArrayList a = new ArrayList();
a.Add(1);

a.Insert(1,2); //배열 1번에 2 넣고 1에 있던거 뒤로 밀기 

a.Count; // = a.size()

int n = (int)a[1]; // = a.get(1) 단, 형변환 必!!!!

List<T>

List<int> a = new List<int>(); // 데이터 타입을 지정함
a.Add(1);
a.Count; // = a.size();
a[1]; // 형변환 필요 X

foreach(int al in a){
	sum += al;
  }
  • Data>DataGridView : 테이블과 같은 효과
    • Select Columns에서 컬럼 추가하면 됨
      -> 얘는 rows를 넣을 수 있음
  • int DataGridViewRowCollection.Add(object[] values)

표 생성, 데이터 한 row씩 클릭 가능하게(단, 정보 수정은 불가하고, 클릭만 가능하게)

  • RowTemplate>SelectionMode : FullRowSelect
    -> 전체를 select해줌
  • MultiSelect : false
    -> 多개 select안하고 하나만 선택됨
  • EditMode : EditProgrammatic
    -> 원래 row 클릭하는 프로그램 구동중에 데이터 수정이 가능한데, 이걸 못하게 막음
  • AllUserToDelete : false
    -> 프로그램 구동 중, row 삭제 불가
  • AllUseToAddRow : false
    -> 프로그램 구동 중, row 추가 불가
  • Dock : fill
    -> panel 속성으로, 화면 전체 꽉채우게 보여주기
    form load 핸들러
  • 도구>Menus & Toolbars>MenuStrip : 상단에 메뉴바 생성 가능

예시 코드

/*form1.cs*/
  
public List<Customer> cuss = new List<Customer>();
  
private void CreateCustomer_Click(object sender, EventArgs e){ //Click 핸들러
  
  	/*현재 TextBox에 있는 모든 정보 Customer 객체에 저장*/
	Customer cus = new Customer(CusNewFirstName.Text, CuNewLastName.Text);
  	cus.Address = CusNewAddress.Text;
  	
  	cuss.Add(cus); //List 객체에 저장
  	
  	CusNewFirstName.Text = ""; // TextBox 초기화
  	...
}
  
private void CusList_CellClick(object sender, DataGridViewCellEventArgs e){
	string firstName = (string)CusList.Rows[e.RowIndex].Cells[0].Value;
  	// e.RowIndex : 선택된 row의 인덱스
  	// Cells[0] : 셀 중 1번째 셀에 대해
  	// Cells[0].Value : 그것의 값
  
  	foreach(Customer cus in Customers){
  		if (cus.FirstName == firstName){
  			ShowDetails(cus); // 선택된 이름의 데이터 show detail
  			break;
  		}
  	}
}

/*form이 처음 로드 될 때 실행되는 함수*/
private void Form1_load(object sender, EvertArgs e){
	CusListPanel.Dock = DockStyle.Fill; // 화면 남은 부분에 panel 꽉채우기
  	CusDetailPanel.Dock = DocStyle.Right; // 오른쪽 가장가리에 panel 채우기
  	CusNewPanel.Dock = DockStyle.Right; // 오른쪽 가장가리에 panel 채우기 -> 따라서, DetailPanel을 NewPanel이 덮은 형태로 보임
}
  
/*새로 생성할 pa*/
private void toolStripMenuIte1_Click(Object sender, EventArgs e){
	CusNewPane.Show();
  	CusDetailPanel.Hide();
}

DockStyle 필드

  • Bottom 2
    컨트롤의 아래쪽 가장자리가 포함된 컨트롤의 아래쪽에 도킹됩니다.
  • Fill 5
    컨트롤의 모든 가장자리가 포함 컨트롤의 모든 가장자리에 도킹되고 가장자리의 크기는 알맞게 조정됩니다.
  • Left 3
    컨트롤의 왼쪽 가장자리가 포함된 컨트롤의 왼쪽 가장자리에 도킹됩니다.
  • None 0
    컨트롤이 도킹되지 않습니다.
  • Right 4
    컨트롤의 오른쪽 가장자리가 포함된 컨트롤의 오른쪽 가장자리에 도킹됩니다.
  • Top 1
    컨트롤의 위쪽 가장자리가 포함된 컨트롤의 위쪽에 도킹됩니다.

0개의 댓글