**본 글은 DevExpress 컴포넌트를 이용한 경우에만 참고 할 수 있다.
간혹 프로그램을 개발 하다 보면 작업중인 화면 외에
간단하게 입력하는 창을 띄워, 값을 받아와야 하는 경우가 있는것 같다.
물론 새로운 Form을 생성하여 입력화면을 만들 수 있지만,
여러모로 번거롭다.
위 이미지 처럼 버튼을 클릭하여 데이터를 입력받는 창을 띄워 신규 추가 하는 기능을 구현 해보자.
우선 클래스를 하나 생성하여 아래와 같이 작성한다.
internal class XtraDialog : XtraUserControl
{
public ComboBoxEdit fruit = new ComboBoxEdit();
public TextEdit price = new TextEdit();
public TextEdit address = new TextEdit();
public DateEdit date = new DateEdit();
public XtraDialog()
{
//컨트롤을 올려놓을 레이아웃 컨트롤 생성
LayoutControl lc = new LayoutControl();
lc.Dock = DockStyle.Fill;
//콤보박스 컨트롤에 항목 추가
AddComboBoxEdit();
//레이아웃에 컨트롤 추가
//EX) lc.AddItem("제목" , 컨트롤);
lc.AddItem("과일선택", fruit);
lc.AddItem("금액입력", price);
lc.AddItem("주소입력", address);
lc.AddItem("출고날짜", date);
//XtraUserControl에 레이아웃 lc 추가 및 사이즈 설정
this.Controls.Add(lc);
this.Height = 150;
this.Dock = DockStyle.Top;
}
//콤보박스 컨트롤에 항목 추가
private void AddComboBoxEdit()
{
fruit.Properties.Items.Add("바나나");
fruit.Properties.Items.Add("수박");
fruit.Properties.Items.Add("딸기");
fruit.Properties.Items.Add("두리안");
}
}
아래는 메인폼의 판매입력 버튼의 이벤트다.
private void simpleButton1_Click(object sender, EventArgs e)
{
XtraDialog di = new XtraDialog(); //XtraDialog 인스턴스 생성
//XtraDialog 에서 OK버튼을 누르면 실행
if (DevExpress.XtraEditors.XtraDialog.Show(di, "판매 정보 입력", MessageBoxButtons.OKCancel) == DialogResult.OK)
{
//GridControl 과 바인딩 되어있는 dt에 di에서 넘어오는 데이터를 ROW 추가
dt.Rows.Add(di.fruit.EditValue.ToString(), di.price.Text, di.address.Text, di.date.EditValue.ToString());
dt.AcceptChanges();
}
}
이제 xtraDialog에서 입력 받은 값이 GridControl에 추가되는것을 확인해보자
끝.
'C# > winform' 카테고리의 다른 글
[C#][Winform][Setup Project]업데이트하면서 Properties.Settings.Default 값 살리기 (0) | 2021.07.20 |
---|---|
[C#][WinForm][Setup Project]설치된 프로그램 업데이트하기. (0) | 2021.07.19 |
[C#][WinForm]DataGridView 데이터 포맷 설정하기(숫자 ',' 표시 / 날짜 형식) (0) | 2021.07.01 |
[C#][WinForm][Dev]GridControl 데이터 형식 설정(숫자 ',' 표시, 날짜 표시) (0) | 2021.06.30 |
[C#][WinForm][Dev]GridControl/GridView에 특정 행을 색으로 표시하기 (0) | 2021.06.29 |