PDA

View Full Version : سوال: تیک خوردن تمام parent های یک child در treeview



meitti
دوشنبه 08 آبان 1391, 09:47 صبح
سلام
چجوری میشه وقتی یه child از یه treeview را تیک زدیم تمام parent های بالای اون تیک بخوره؟ مثل این عکس

فرید نجفلو
سه شنبه 09 آبان 1391, 01:30 صبح
البته با این کدی که شما دادین بازگشتی بودنش فرقی نمی کنه (فقط تکرار غیر مفید داره)
اگه خط checkAllParent(treeNode.Parent); (گذشته از درست نبودن اسم تابع) رو هم حذف کنید باز کار می کنه
چون با هر تیک خوردن Parent رویداد مورد نظر اجرا می شه
پس می تونید کد تابع رو (منهای اونخط) ببرید داخل روال رویداد


private void treeView1_AfterCheck(object sender, TreeViewEventArgs e)
{
if (e.Node.Parent != null)
e.Node.Parent.Checked = true;
}


البته شاید این کد براتون بهتر باشه :

private void treeView1_AfterCheck(object sender, TreeViewEventArgs e)
{
if (e.Node.Checked)
{
if (e.Node.Parent != null)
e.Node.Parent.Checked = true;
}
else
{
if (e.Node.Nodes.Count > 0)
foreach (TreeNode aNode in e.Node.Nodes)
aNode.Checked = false;
}
}