首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> 關於.NET

.NET 組件編程(三):Property Editor 與 Collection Editor

     編輯:關於.NET

VS 環境中 Property Editor 分兩類:內建與自訂。本章介紹兩者,重點說明內建 Collection Editor。

常用 Property Attribute 回顧

  • EditorAttribute:指定編輯器類型
  • DesignerSerializationVisibilityAttribute:指定結果是否持久化至代碼
  • LocalizableAttribute:本地化時自動駐留資源檔

範例:內建 Collection Editor 與自訂 Modal Editor

public class Demo3 : Component {
    public Demo3() { _students = new List<Student>(); }
    private List<Student> _students;
    private string _grade;
    [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
    public List<Student> Students {
        get { return _students; }
        set { _students = value; }
    }
    [Editor(typeof(GradeEditor), typeof(UITypeEditor)), LocalizableAttribute(true)]
    public string Grade {
        get { return _grade; }
        set { _grade = value; }
    }
}
public class Student { public int Id {get;set;} public string Name {get;set;} }

public class GradeEditor : UITypeEditor {
    public override UITypeEditorEditStyle GetEditStyle(ITypeDescriptorContext context) {
        return UITypeEditorEditStyle.Modal; // 彈出式
    }
    public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value) {
        var svc = (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
        var dlg = new frmGradeEditor();
        svc.ShowDialog(dlg);
        string grade = dlg.Grade;
        dlg.Dispose();
        return grade;
    }
}

效果:
Collection Editor 自訂 Modal Editor

隨文原始碼:https://www.bianceng.net/dotnet/201212/662.htm

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved