using system;
using system.***ponentmodel;
using system.***ponentmodel.design.serialization;
using system.web;
using system.web.ui;
using system.web.ui.webcontrols;
using system.globalization;
using system.reflection;
using system.windows.forms;
using system.windows.forms.design;
using system.drawing.design;
namespace testinstancedescriptor
public mysize()
public mysize(int x,int y)
public int x
set}
public int y
set}
public override string tostring()
,",_x.tostring(),_y.tostring());}}
public class mysizetypeconverter:typeconverter
public override bool canconvertto(itypedescriptorcontext context, type destinationtype)
public override object convertfrom(itypedescriptorcontext context,
system.globalization.cultureinfo culture, object value)
if (!(value is string))
string str = ((string)value).trim();
if (str.length == 0)
char splitchar = ;
string values = ((string)value).split(splitchar);
if(values.length != 2)
return mysize.empty;
trycatch(formatexception)
}public override object convertto(itypedescriptorcontext context,
system.globalization.cultureinfo culture, object value, type destinationtype)
);object args = new object ;
return new instancedescriptor(mi,args);
}if (destinationtype != typeof(string))
if (value != null)
return string.empty;}}
///
/// summary description for instdesclabe.
///
public class instdesclabel:system.web.ui.webcontrols.label
set}
public instdesclabel()
}public class mysizeeditor:uitypeeditor
public override object editvalue(itypedescriptorcontext context, iserviceprovider provider, object value)
}return base.editvalue (context, provider, value);
}public class label***ponenteditorform : system.windows.forms.usercontrol //system.windows.forms.form
}public int y
}///
/// 必需的設計器變數。
///
private system.***ponentmodel.container ***ponents = null;
public label***ponenteditorform()
public label***ponenteditorform(int x,int y) : this()
///
/// 清理所有正在使用的資源。
///
protected override void dispose( bool disposing )
}base.dispose( disposing );
}#region windows 窗體設計器生成的**
///
/// 設計器支援所需的方法 - 不要使用**編輯器修改
/// 此方法的內容。
///
private void initialize***ponent()
#endregion
private void button1_click(object sender, system.eventargs e)}}
C 自定義控制項屬性
寫在前面 在開發自定義控制項件時,有好些design屬性是要使用的,如toolboxitem,toolboxbitmap,category,description等等,不知道這些屬性其實也可以將控制項搞出來,不過,知道了,會令事件更加簡單,令控制項更加專業和實用。有時,不知道用法,會令到專案的其他同...
自定義控制項及自定義屬性
自定義控制項在android開發中的重要性,是不言而喻,眾人皆知的。希望通過這二天的學習,能讓大家了解自定義控制項的原理,熟悉自定義控制項的使用步驟,並能寫出一些普通的效果。內容介紹 1 使用系統控制項,實現自定義的效果,案例有 優酷環形選單 廣告條 viewpager 下拉列表 spinner 2...
Android自定義控制項 自定義屬性
自定義屬性的過程 1.在res values資料夾中建立attrs的xml檔案。2.寫入標籤,定義子標籤attr,放入自定義屬性的名稱。format 可以用 來同時使用 1 reference 參考某一資源id 2 color 顏色值 3 boolean 布林值 4 dimension 尺寸值 帶有...