PDA

View Full Version : انتخاب نود در TreeView



armiin
شنبه 10 مهر 1389, 12:08 عصر
با سلام

بنده در برنامه ام یک TreeView دارم ، همانطور که در عکس مشاهده میکنید 2 لایه بیشتر نیست
حال در برنامه ی من باید گاهی اوقات نود ها باز شوند و Select شوند ، مانند صفحه ی Explore ویندوز که شما وقتی فولدری را باز میکنید TreeView کنار صفحه نیز باز میشود !
برای Select و باز کردن Node ها باید چه کار کنم ؟

nPad.Net
شنبه 10 مهر 1389, 13:35 عصر
برای Select و باز کردن Node ها باید چه کار کنم ؟

سلام

برا Select کردن :

treeView1.SelectedNode
و با این دستور میتونید Index نود انتخابی رو برگردونید:

treeView1.SelectedNode.Index

نود انتخابی رو تا آخرین لایه باز میکنه:

()treeView1.SelectedNode.ExpandAll

کل نودها رو باز میکنه:

()treeView1.ExpandAll

موفق باشید

armiin
شنبه 10 مهر 1389, 15:40 عصر
با تشکر از پستتون ، ولی مشکل بنده دقیقا مثل Explore ویندوز ! یعنی کاربر اصلا روی TreeView هیچ کلیکی نمیکنه که Node ای هم Select بشه و من بتونم با کد شما اون Node باز کنم :ناراحت:
اگر کدی بتونید بدید که مثلا یک Node را از روی Text یا FullPath یا Index و ... Select کنم ، بعد از اون میتونم با استفاده از کد شما اون Node را باز کنم و مشکلم حل میشه !

morteza271
شنبه 10 مهر 1389, 15:56 عصر
خوب کدهای دوستمون رو توی لود فرم بذارید تا از همون اول که فرم باز میشه اون نودتون باز باشه...
موفق باشید

nPad.Net
شنبه 10 مهر 1389, 18:55 عصر
اگر کدی بتونید بدید که مثلا یک Node را از روی Text یا FullPath یا Index و ... Select کنم ، بعد از اون میتونم با استفاده از کد شما اون Node را باز کنم و مشکلم حل میشه !

من اینجوری متوجه شدم که میخواید به ازای فرضا ورود به هر فرم نود مربوط به اونو Select کنید:



treeView1.HideSelection = false;
treeView1.SelectedNode = treeView1.Nodes[3].Nodes[1];


دیگه نیازی هم به Expand کردن Node ندارید.
(Index های Nodeهاتون رو هم میتونید از منو ی Task مربوط به TreeView ببینید)
به جای این دستور :

treeView1.HideSelection = false;

میتونید یکی از دو دستور زیررو هم بکارببرید:

treeView1.Select();
یا
treeView1.Focus();

موفق باشید

halandon67
یک شنبه 02 مرداد 1390, 11:58 صبح
سلام
من یک فرم دارم که توش tree view گذاشتم و یک گره به وجو آوردن یک buttonهم گذاشتم که وقتی روش کلیک می کنم یک فرم باز می شه که باید یک پایه را چک کنم وقتی این پایه را چک می کنم و ok می کنم می خوام به عنوان گره فرزند به گره اولیه در tree view اضافه شود.لطفا دستورش رو برام بذازید.ممنون

halandon67
چهارشنبه 05 مرداد 1390, 21:34 عصر
از دوستان کسی نیست مرا یاری کند؟خیلی به این موضوع احتیاج دارم لطفا کمک کنید

armiin
شنبه 08 مرداد 1390, 00:50 صبح
دوست عزیز منظورتونو از پایه نمیفهمم واقعا ، همون گره هم 5 دقیقه فکر کردم تا فهمیدم منظور شما node هستش
مثلا من برای یک قست از برنامه ام که به node که select شده بود باید یه treenode جدید اضافه میکردم ، اینجوریی نوشتمش

trv.SelectedNode.Nodes.Add(tn);


trv اسم treeView ام بود ، tn هم TreeNode جدیدم که قصد داشتم اضافه کنم
فکر کنم این هم جواب بده


trv.Nodes[3].Nodes[2].Nodes.Add(tn);


یعنی از node 3 دومین node برای اضافه شدن node جدید انتخاب شده ، البته این کد تست نکردم

موفق باشید

halandon67
شنبه 08 مرداد 1390, 09:28 صبح
منظورم اینه که تو فرم بعدی که باز می شه چند تا checkbox دارم که text آنها به نام پایه اول است می خوام بگم وقتی پایه اول را checked می کنم به node ای که توی treeview هست پایه اول به عنوان فرزند اضافه بشه.در ضمن من نمی دونم چطوری می شه از فرم قبلی ام به component های فرم بعدی دسترسی پیدا کنم

armiin
یک شنبه 09 مرداد 1390, 18:15 عصر
شرمنده اون قسمت اول نوشتتون یه 7-8 باری خوندم ولی بازم منظورتونو از پایه نفهمیدم :ناراحت:



در ضمن من نمی دونم چطوری می شه از فرم قبلی ام به component های فرم بعدی دسترسی پیدا کنم
من تاحالا سعی نکردم به کامپوننت یه فرم دیگه دسترسی داشته باشم ، آخه دلیلیم نداره ! شما اگه میخواید مقداری به کامپوننت ها بدید میتونید از آرگومان های Constructor همون فرم استفاده کنید