About the Implementing a schematic rule and its property page Sample
[C#]
frmReductionLink.cs
using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Text; using System.Windows.Forms; using ESRI.ArcGIS.Framework; namespace CustomRulesCS { public partial class frmReductionLink : Form { private bool m_isDirty = false; private IComPropertyPageSite m_pageSite; public frmReductionLink() { InitializeComponent(); } ~frmReductionLink() { m_pageSite = null; } // For managing the IsDirty flag that specifies whether // or not controls in the custom form have been modified public bool IsDirty { get { return m_isDirty; } set { m_isDirty = value; } } //- For managing the related IComPropertyPageSite public IComPropertyPageSite PageSite { set { m_pageSite = value; } } private void Changed(object sender, System.EventArgs e) { // If the user changes something, mark the custom form; dirty and // enable the apply button on the page site via the PageChanged method m_isDirty = true; if (m_pageSite != null) { m_pageSite.PageChanged(); } } } }
[Visual Basic .NET]
frmReductionLink.vb
Imports System Imports System.Collections.Generic Imports System.ComponentModel Imports System.Drawing Imports System.Text Imports System.Windows.Forms Friend Class frmReductionLink Private m_isDirty As Boolean = False Private m_pageSite As ESRI.ArcGIS.Framework.IComPropertyPageSite Public Sub New() InitializeComponent() End Sub Protected Overrides Sub Finalize() m_pageSite = Nothing MyBase.Finalize() End Sub ' For managing the IsDirty flag that specifies whether ' or not controls in the custom form have been modified Public Property IsDirty() As Boolean Get Return m_isDirty End Get Set(ByVal value As Boolean) m_isDirty = value End Set End Property '- For managing the related IComPropertyPageSite Public WriteOnly Property PageSite() As ESRI.ArcGIS.Framework.IComPropertyPageSite Set(ByVal value As ESRI.ArcGIS.Framework.IComPropertyPageSite) m_pageSite = value End Set End Property Private Sub Changed(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtDescription.TextChanged, chkUsePort.CheckStateChanged, cboReduce.SelectedIndexChanged, cboReduce.Click ' If the user changes something, mark the custom form dirty and ' enable the apply button on the page site via the PageChanged method m_isDirty = True If (m_pageSite IsNot Nothing) Then m_pageSite.PageChanged() End Sub End Class