폼 셋팅의 클래스를 살펴보자.
이녀석은 앞서 이야기 했듯이 리플랙션을 이용해서 폼의 컨트롤을 가져와서 foreach로 돌리는것에 불과하다.
나머지는 아래 다른 강좌에 적은것의 활용이다.
데브의 폼의 한계로 인해서 오른쪽으로 더 큰 그림이 들어가면 글자가 깨지므로 아래에 소스를 첨부한다.
class FormSetting
{
Form _Form;
IDataBase DB;
public FormSetting(Form FormRef)
{
_Form = FormRef;
DB = new setDBExcel(@"c:\test.xls");
}
public void AutoSetting()
{
FieldInfo[] controlA = _Form.GetType().GetFields(BindingFlags.Instance | BindingFlags.NonPublic);
foreach (FieldInfo ctl in controlA)
{
if (ctl.GetValue(_Form) is TreeView) setTreeView((TreeView) ctl.GetValue(_Form));
if (ctl.GetValue(_Form) is ListView) setListView((ListView)ctl.GetValue(_Form));
if (ctl.GetValue(_Form) is ComboBox) setComboBox((ComboBox)ctl.GetValue(_Form));
if (ctl.GetValue(_Form) is DataGridView) setGridView((DataGridView)ctl.GetValue(_Form));
}
}
private void setListView(ListView ctl)
{
}
private void setGridView(DataGridView ctl)
{
string TagID = (string)ctl.Tag;
if (TagID != "")
{
ctl.DataSource = DB.callSQL("select * from [combo$] where comboid = '" + TagID + "'").Tables[0];
}
}
private void setComboBox(ComboBox ctl)
{
string TagID = (string)ctl.Tag;
if (TagID != "")
{
DataTable DT = DB.callSQL("select * from [combo$] where comboid = '" + TagID + "'").Tables[0];
ctl.DataSource = DT;
ctl.DisplayMember = DT.Columns["Expression"].ToString();
ctl.ValueMember = DT.Columns["value"].ToString();
}
}
private void setTreeView(TreeView ctl)
{
string TagID = (string)ctl.Tag;
if (TagID != "")
{
DataTable DT = DB.callSQL("select * from [treeview$] where treeviewID = '" + TagID + "'").Tables[0];
ctl.Nodes.Add(DT.Rows[0]["Expression"].ToString());
new setTreeView(ctl, DT);
}
}
}
//---------------------------------------------------------------------------
데이타는 DB를 사용하기에는 교정이 귀찮음으로 인해서 가볍게 엑셀을 사용했다.
앞서 설명한 엑셀 DB클래스를 이용해서 처리했다.
각 컨트롤에는 바인딩에 필요한.. TAG를 적어야 하는데
그것이야.. 알아서 하면 될것이다.
원본 위치 <http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=18&MAEULNO=8&no=1595&page=1>
'C# DB 코딩 강좌' 카테고리의 다른 글
C#을 이용한 DB코딩 20 (0) | 2008.11.14 |
---|---|
C#을 이용한 DB코딩 19 (0) | 2008.11.14 |
C#을 이용한 DB코딩 18 (0) | 2008.11.14 |
C#을 이용한 DB코딩 17 (0) | 2008.11.14 |
C#을 이용한 DB코딩 16(실습파일포함) (0) | 2008.11.14 |
C#을 이용한 DB코딩 14 (0) | 2008.11.14 |
C#을 이용한 DB코딩 13 (0) | 2008.11.14 |
C#을 이용한 DB코딩 12 (0) | 2008.11.14 |
C#을 이용한 DB코딩 11 (0) | 2008.11.14 |
C#을 이용한 DB코딩 10 (0) | 2008.11.14 |