View Full Version : treeview شرط
xxxsenatorxxx
دوشنبه 29 اسفند 1390, 23:49 عصر
سلام
یک تری ویو چک باکس دار داریم می خوام یک شرط یزارم که اگر دکمه رو زدیم و هیچ ندی تیک نخورده بود یک پیغام بده.همین
با تشکر
omid_csh
سه شنبه 01 فروردین 1391, 01:12 صبح
سلام
اگه treeview یک سطی باشه اینطوری می تونی هر کدوم از عناصرشو چک کنی
foreach (TreeNode myNode in myTreeView.Nodes)
{
//چک کردن آیتم
if (myNode.Checked)
{
}
else
{
}
}
xxxsenatorxxx
سه شنبه 01 فروردین 1391, 23:49 عصر
سلام
اگه treeview یک سطی باشه اینطوری می تونی هر کدوم از عناصرشو چک کنی
foreach (TreeNode myNode in myTreeView.Nodes)
{
//چک کردن آیتم
if (myNode.Checked)
{
}
else
{
}
}
با تشکر ولی چند سطحیه و در ضمن میشه یه توضیح هم بدید mynode چیه؟شی از تری ویو هست؟ چون تغیرش میدم ارور نمیده؟
omid_csh
سه شنبه 01 فروردین 1391, 23:57 عصر
چند تا سطح داره؟
mynode یه نمونه از کلاس TreeNode هستش که تو هر بار اجرای حلقه یکی از گره های تری ویو هستش
xxxsenatorxxx
چهارشنبه 02 فروردین 1391, 01:09 صبح
چند تا سطح داره؟
mynode یه نمونه از کلاس TreeNode هستش که تو هر بار اجرای حلقه یکی از گره های تری ویو هستش
بیشتر از 6 یا 7 .میشه تابینهایت تعریف کرد؟اگر نمیشه رو همون 7 باشه ممنون میشم
omid_csh
چهارشنبه 02 فروردین 1391, 01:27 صبح
باید بصورت بازگشتی بنویسی
حالا باید تابع CallRecursive رو فراخونی کنی
private void PrintRecursive(TreeNode treeNode)
{
// Print the node.
System.Diagnostics.Debug.WriteLine(treeNode.Text);
MessageBox.Show(treeNode.Text);
// Print each node recursively.
foreach (TreeNode tn in treeNode.Nodes)
{
PrintRecursive(tn);
}
}
// Call the procedure using the TreeView.
private void CallRecursive(TreeView treeView)
{
// Print each node recursively.
TreeNodeCollection nodes = treeView.Nodes;
foreach (TreeNode n in nodes)
{
PrintRecursive(n);
}
}
مرجع http://msdn.microsoft.com/en-us/library/wwc698z7(v=vs.85).aspx
xxxsenatorxxx
چهارشنبه 02 فروردین 1391, 01:31 صبح
باید بصورت بازگشتی بنویسی
حالا باید تابع CallRecursive رو فراخونی کنی
private void PrintRecursive(TreeNode treeNode)
{
// Print the node.
System.Diagnostics.Debug.WriteLine(treeNode.Text);
MessageBox.Show(treeNode.Text);
// Print each node recursively.
foreach (TreeNode tn in treeNode.Nodes)
{
PrintRecursive(tn);
}
}
// Call the procedure using the TreeView.
private void CallRecursive(TreeView treeView)
{
// Print each node recursively.
TreeNodeCollection nodes = treeView.Nodes;
foreach (TreeNode n in nodes)
{
PrintRecursive(n);
}
}
مرجع http://msdn.microsoft.com/en-us/library/wwc698z7(v=vs.85).aspx
میشه کد بازگشتی رو هم بزارید من تازه کارم
omid_csh
چهارشنبه 02 فروردین 1391, 01:49 صبح
تابع CallRecursive همون تابع بازگشتی هستش دیگه
xxxsenatorxxx
یک شنبه 06 فروردین 1391, 00:04 صبح
تابع CallRecursive همون تابع بازگشتی هستش دیگه
سلام
اقا از اون روز من دارم با کدتون ور میرم ولی به اون چیزی که میخوام نرسیدم
نهایت چیزی که میده اینه که اسم تمام شاخه ها و زیر شاخه ها تو مسیج باکس نمایش داده میشه
من تابع رو تعریف کردم ولی تو باتن چی بزارم که با زدنش اگر هیچ شاخه تیک نخروده پیغام بده
تورو خدا یه کد بده که تو باتن بزارم حل شه.ترکیدم از بس نشد:گریه:
ممنون
C#.net
یک شنبه 06 فروردین 1391, 01:15 صبح
از این استفاده کنید:
private void button1_Click(object sender, EventArgs e)
{
if (CheckTree(treeView1.Nodes))
MessageBox.Show("Thanks!");
else
MessageBox.Show("Please select a node");
}
private bool CheckTree(TreeNodeCollection nodes)
{
foreach (TreeNode node in nodes)
{
if (node.Checked) return true;
if (CheckTree(node.Nodes)) return true;
}
return false;
}
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.