本文整理汇总了C#中VisualHint.SmartPropertyGrid.PropertyEnumerator.Clone方法的典型用法代码示例。如果您正苦于以下问题:C# PropertyEnumerator.Clone方法的具体用法?C# PropertyEnumerator.Clone怎么用?C# PropertyEnumerator.Clone使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类VisualHint.SmartPropertyGrid.PropertyEnumerator
的用法示例。
在下文中一共展示了PropertyEnumerator.Clone方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: RestorePropertiesStates
public virtual void RestorePropertiesStates(PropertyEnumerator propEnum, object propertiesStates)
{
PropertyEnumerator firstDisplayedPropertyEnum = null;
int selectedPropertyVisibleIndex = (propertiesStates as PropertiesStates)._selectedPropertyVisibleIndex;
while (propEnum != propEnum.RightBound)
{
int hashcode = GetPropertyHashCode(propEnum);
if (hashcode == (propertiesStates as PropertiesStates)._firstDisplayedPropertyHashcode)
firstDisplayedPropertyEnum = (PropertyEnumerator)propEnum.Clone();
object objState = (propertiesStates as PropertiesStates)._states[hashcode];
if (objState != null)
{
PropertiesStates.PropertyState state = (PropertiesStates.PropertyState)objState;
ExpandProperty(propEnum, state.expanded);
if (state.selected)
{
SelectProperty(propEnum);
if (selectedPropertyVisibleIndex != -1)
{
// The selected property was visible so we will ensure that it is displaye at
// the exact same row in the grid
int currentIndex = GetPropertyVisibleIndex(propEnum);
if (currentIndex == -1)
{
EnsureVisible(propEnum);
currentIndex = GetPropertyVisibleIndex(propEnum);
}
while (currentIndex > selectedPropertyVisibleIndex)
{
Win32Calls.SendMessage(Handle, Win32Calls.WM_VSCROLL, Win32Calls.MakeLong(Win32Calls.SB_LINEDOWN, 0), 0);
currentIndex--;
}
while (currentIndex < selectedPropertyVisibleIndex)
{
Win32Calls.SendMessage(Handle, Win32Calls.WM_VSCROLL, Win32Calls.MakeLong(Win32Calls.SB_LINEUP, 0), 0);
currentIndex++;
}
}
}
}
propEnum.MoveNext();
}
if ((selectedPropertyVisibleIndex == -1) && (firstDisplayedPropertyEnum != null))
{
// The selected property was not visible so we will rely on the first property that
// was displayed in the grid
_firstDisplayedLine = (propertiesStates as PropertiesStates)._firstDisplayedLine;
FirstDisplayedProperty = firstDisplayedPropertyEnum.GetVisibleDeepEnumerator();
}
}
示例2: PropertyEventArgs
internal PropertyEventArgs(PropertyEnumerator propEnum)
{
_propertyEnum = (PropertyEnumerator)propEnum.Clone();
}