📄 dbtreeviewctrl.cs
字号:
currentListIndex += 1;
}
}
#endregion
#region Groups
public void RemoveGroup(Group group)
{
if ( treeGroups.Contains (group) )
{
treeGroups.Remove(group);
if ( this.AutoBuildTree )
BuildTree();
}
}
public void RemoveGroup (string groupName)
{
foreach (Group group in this.treeGroups)
{
if ( group.Name == groupName )
{
RemoveGroup (group);
return;
}
}
}
public void RemoveAllGroups ()
{
this.treeGroups.Clear();
if ( this.AutoBuildTree )
this.BuildTree();
}
public void AddGroup(Group group)
{
try
{
treeGroups.Add(group);
if ( this.AutoBuildTree )
this.BuildTree();
}
catch (NotSupportedException e)
{
MessageBox.Show (e.Message);
}
catch (System.Exception e)
{
throw e;
}
}
public void AddGroup(String name, String groupBy, String displayMember,
String valueMember, int imageIndex, int selectedImageIndex)
{
Group myNewGroup = new Group (name, groupBy, displayMember, valueMember,
imageIndex, selectedImageIndex);
this.AddGroup (myNewGroup);
}
public Group[] GetGroups()
{
return ( (Group[]) treeGroups.ToArray (Type.GetType("Group")));
}
#endregion
public void SetLeafData(String name, String displayMember, String valueMember,
int imageIndex, int selectedImageIndex)
{
this.Tag = name;
this.DisplayMember = displayMember;
this.ValueMember = valueMember;
this.ImageIndex = imageIndex;
this.SelectedImageIndex = selectedImageIndex;
}
public bool IsLeafNode (TreeNode node)
{
return (node.Nodes.Count == 0);
}
#region Keeping Everything In Sync
public TreeNode FindNodeByValue (object value)
{
return FindNodeByValue (value, this.Nodes);
}
public TreeNode FindNodeByValue (object Value, TreeNodeCollection nodesToSearch)
{
int i = 0;
TreeNode currNode;
dbTreeNode leafNode;
while ( i < nodesToSearch.Count )
{
currNode = nodesToSearch[i];
i ++;
if ( currNode.LastNode == null )
{
leafNode = (dbTreeNode) currNode;
if ( leafNode.Value.ToString() == Value.ToString() )
return currNode;
}
else
{
currNode = FindNodeByValue (Value, currNode.Nodes);
if ( currNode != null )
return currNode;
}
}
return null;
}
private TreeNode FindNodeByPosition (int posIndex)
{
return FindNodeByPosition (posIndex, this.Nodes);
}
private TreeNode FindNodeByPosition (int posIndex, TreeNodeCollection nodesToSearch)
{
int i=0;
TreeNode currNode;
dbTreeNode leafNode;
while ( i < nodesToSearch.Count )
{
currNode = nodesToSearch [i];
i++;
if ( currNode.Nodes.Count == 0 )
{
leafNode = (dbTreeNode)currNode;
if ( leafNode.Position == posIndex )
{
return currNode;
}
else
{
currNode = FindNodeByPosition (posIndex, currNode.Nodes);
if ( currNode != null )
return currNode;
}
}
}
return null;
}
protected override void OnAfterSelect(TreeViewEventArgs e)
{
dbTreeNode leafNode = (dbTreeNode) e.Node;
if (leafNode != null)
{
if ( this.m_currencyManager.Position != leafNode.Position )
this.m_currencyManager.Position = leafNode.Position;
}
// TODO: Add MyTreeViewCtrl.OnAfterSelect implementation
base.OnAfterSelect (e);
}
#endregion
}
public class Group
{
private String groupName;
private String groupByMember;
private String groupByDisplayMember;
private String groupByValueMember;
private int groupImageIndex;
private int groupSelectedImageIndex;
public Group (String name, String groupBy, String displayMember,
String valueMember, int imageIndex, int selectedImageIndex)
{
this.ImageIndex = imageIndex;
this.Name = name;
this.GroupBy = groupBy;
this.DisplayMember = displayMember;
this.ValueMember = valueMember;
this.SelectedImageIndex = selectedImageIndex;
}
public Group (String name, String groupBy, String displayMember,
String valueMember, int imageIndex) :
this (name, groupBy, displayMember, valueMember, imageIndex, imageIndex)
{
}
public Group (String name, String groupBy) :
this (name, groupBy, groupBy, groupBy, -1, -1)
{
}
public int SelectedImageIndex
{
get
{
return groupSelectedImageIndex;
}
set
{
groupSelectedImageIndex = value;
}
}
public int ImageIndex
{
get
{
return groupImageIndex;
}
set
{
groupImageIndex = value;
}
}
public String Name
{
get
{
return groupName;
}
set
{
groupName = value;
}
}
public String GroupBy
{
get
{
return groupByMember;
}
set
{
groupByMember = value;
}
}
public String DisplayMember
{
get
{
return groupByDisplayMember;
}
set
{
groupByDisplayMember = value;
}
}
public String ValueMember
{
get
{
return groupByValueMember;
}
set
{
groupByValueMember = value;
}
}
}
public class dbTreeNode : TreeNode
{
private String m_groupName;
private object m_value;
private object m_item;
private int m_position;
public dbTreeNode ()
{
}
public dbTreeNode (String groupName, String text, object item, object value,
int imageIndex, int selectedImgIndex, int position)
{
this.GroupName = groupName;
this.Text = text;
this.Item = item;
this.Value = value;
this.ImageIndex = imageIndex;
this.SelectedImageIndex = selectedImgIndex;
this.m_position = position;
}
public dbTreeNode (String groupName, String text, object item, object value, int position)
{
this.GroupName = groupName;
this.Text = text;
this.Item = item;
this.Value = value;
this.m_position = position;
}
public String GroupName
{
get
{
return m_groupName;
}
set
{
this.m_groupName = value;
}
}
public object Item
{
get
{
return m_item;
}
set
{
m_item = value;
}
}
public object Value
{
get
{
return m_value;
}
set
{
m_value = value;
}
}
public int Position
{
get
{
return m_position;
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -