120 lines
3.3 KiB
C#
120 lines
3.3 KiB
C#
using JWH;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Configuration;
|
|
using System.Drawing;
|
|
using System.Windows.Forms;
|
|
using Telerik.WinControls.UI;
|
|
|
|
namespace DDUtilityApp
|
|
{
|
|
public partial class FrmMain : Form
|
|
{
|
|
|
|
public object SelectedObject { get; set; } = null;
|
|
|
|
public List<DynamicControl> Buttons { get; set; } = new List<DynamicControl>();
|
|
|
|
public FrmMain()
|
|
{
|
|
InitializeComponent();
|
|
|
|
this.SetLayout();
|
|
this.SetEventHandler();
|
|
}
|
|
|
|
public FrmMain(List<DynamicControl> args) : this()
|
|
{
|
|
this.Buttons = args;
|
|
this.SetButtons();
|
|
}
|
|
|
|
protected void SetLayout()
|
|
{
|
|
}
|
|
|
|
protected void SetEventHandler()
|
|
{
|
|
this.Load += FrmMain_Load;
|
|
}
|
|
|
|
private void FrmMain_Load(object sender, EventArgs e)
|
|
{
|
|
this.SetButtons();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 동적으로 버튼 생성
|
|
/// </summary>
|
|
private void SetButtons()
|
|
{
|
|
try
|
|
{
|
|
bool isAdmin = false;
|
|
string adminPWD = ConfigurationManager.AppSettings["ADMIN"];
|
|
if (adminPWD != null && adminPWD == "daeduck!1") isAdmin = true;
|
|
|
|
int btnWidth = 200;
|
|
int btnHeight = 32;
|
|
int tabIndex = 10;
|
|
|
|
List<Button> lstControls = new List<Button>();
|
|
foreach(DynamicControl obj in this.Buttons)
|
|
{
|
|
Button button = new Button();
|
|
button.Text = obj.Name;
|
|
button.Size = new Size(btnWidth, btnHeight);
|
|
button.Dock = DockStyle.Top;
|
|
button.TabIndex = tabIndex++;
|
|
button.Tag = obj.Value;
|
|
button.Visible = obj.Visible | isAdmin;
|
|
button.Click += Button_Click;
|
|
lstControls.Add(button);
|
|
}
|
|
|
|
Button btnClose = new Button();
|
|
btnClose.Text = "Close";
|
|
btnClose.Size = new Size(btnWidth, btnHeight);
|
|
btnClose.Dock = DockStyle.Top;
|
|
btnClose.TabIndex = tabIndex++;
|
|
btnClose.Click += BtnClose_Click;
|
|
lstControls.Add(btnClose);
|
|
|
|
lstControls.Reverse();
|
|
foreach (Button button in lstControls)
|
|
{
|
|
this.Controls.Add(button);
|
|
|
|
if (button.Name == "btnClose")
|
|
this.CancelButton = button;
|
|
}
|
|
|
|
this.AutoSize = true;
|
|
this.Padding = new Padding(10);
|
|
this.Size = new Size(this.Width, btnClose.Bounds.Bottom);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
XLogger.Instance.Fatal(ex);
|
|
}
|
|
}
|
|
|
|
private void Button_Click(object sender, EventArgs e)
|
|
{
|
|
Button button = sender as Button;
|
|
this.SelectedObject = button.Tag;
|
|
|
|
this.DialogResult = DialogResult.OK;
|
|
this.Close();
|
|
}
|
|
|
|
private void BtnClose_Click(object sender, EventArgs e)
|
|
{
|
|
this.DialogResult = DialogResult.Cancel;
|
|
this.Close();
|
|
}
|
|
|
|
}
|
|
|
|
}
|