星期一, 2月 09, 2015

[C#] 利用 Interface 取控件值

根據遠距教學老師強調的重點實做,控件應實作 interface,並利用 interface 來抓取控件的值
  1. 建立 MyControl Project 並產生三個 class (MyTextBox、MyDropDownList 和 MyCheckBox),接實作 Interface (IDemo)
  2. 建立 IntertfaceDemo Project 並參考 MyControl.dll
[C#] Interface 2-1



MyControl Project

MyTextBox
namespace MyControl
{
    public class MyTextBox:TextBox,IDemo
    {
        public string GetValue()
        {
            return this.Text;
        }
    }
}
MyDropDownList
namespace MyControl
{
    public class MyDropDownList : DropDownList,IDemo
    {
        public string GetValue()
        {
            return this.SelectedValue;
        }
    }
}
MyCheckBox
namespace MyControl
{
    public class MyCheckBox:CheckBox,IDemo
    {
        public string GetValue()
        {
            return this.Checked.ToString();
        }
    }
}
IDemo
namespace MyControl
{
    public interface IDemo
    {
        string GetValue();
    }
}
InterfaceDemo Project
using MyControl;

namespace InterfaceDemo
{
    public partial class _default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            lblResult.Text = string.Empty;
            foreach (Control item in Form.Controls)
            {
                var ctrl = item as IDemo;
                if (ctrl == null) continue;
                lblResult.Text += string.Format("{0} = {1}", item.ID, ctrl.GetValue()) + "<br/>";
            }  
        }
    }
}
畫面上把 MyTextBox、MyDropDownList 和 MyCheckBox 拉進來使用,並新增一個 Button 和 Label 來顯示結果
[C#] Interface 2-2

執行結果

[C#] Interface 2-3

沒有留言:

張貼留言