PDA

View Full Version : مشکل با TreeView



VisualStudio
سه شنبه 22 اسفند 1385, 14:57 عصر
من می خوام هر آیتمی (Node) را که انتخا می کنم مثلا خاصیت Visible تکست باکس 1 به True تغییر کنه چکار باید بکنم
بعد چطوری یک Node همیشه در حالت Expand باشه من هر کاری می کنم تو VB.NET 2005 نمی شه
چطور میشه که به صورت پیش فرض یکی از Node ها انتخاب شده باشه

behzad_gh
چهارشنبه 23 اسفند 1385, 22:09 عصر
من می خوام هر آیتمی (Node) را که انتخا می کنم مثلا خاصیت Visible تکست باکس 1 به True تغییر کنه چکار باید بکنم
برای Node ها خصوصیت Tag را ست کنید و سپس :



Private Sub myTreeView_AfterSelect(ByVal sender As Object, ByVal e As System.Windows.Forms.TreeViewEventArgs) Handles treeSettings.AfterSelect

Select Case e.Node.Tag.ToString
Case "a tag"
text1.visible = true
Case "b tag"
text2.visible = true
Case "c tag"
.
.
End Select
End Sub




بعد چطوری یک Node همیشه در حالت Expand باشه من هر کاری می کنم تو VB.NET 2005 نمی شه
قسمت آبی کد پایین.


چطور میشه که به صورت پیش فرض یکی از Node ها انتخاب شده باشه
کد زیر برای یک مرحله root و یک مرحله child است که اگر بیشتر بود باید کد زیر را تغییر دهید :



DefaultNode = "a tag" or "b tag" or "c tag" or ....
For Each TempNode As TreeNode In mytreeview.Nodes
If TempNode.Tag = DefaultNode Then treeSettings.SelectedNode = TempNode
For Each TempChildNode As TreeNode In TempNode.Nodes
If TempChildNode.Tag = DefaultNode Then
TempNode.Expand()
mytreeview.SelectedNode = TempChildNode
End If
Next
Next

SabaSabouhi
پنج شنبه 24 اسفند 1385, 10:59 صبح
با سلام
یه مشکل هم من دارم، نمى‌دونم راه‌حل داره یا نه.
مى‌خوام یه کارى کنم که با Click شدن یا Double-Click شدن روى متن هر Node عمل Expand یا Collapse انجام نشه، فقط اگه روى Icon "+" یا "-" اگه Click شد این عملیات انجام بشه.
توى یه برنامه یه TreeView دارم که با Double-Click یا Click روى هر Node عمل خاصى رو انجام مى‌دم و نمى‌خوام با هر Click اون Node باز و یا بسته بشه.

یه پرسش دیگه هم دارم، آیا مى‌شه براى هر گره یه UserControl بجاى Item استاندارد گذاشت؟
منظورم اینه که خود TreeView به همراه جدول درختى و Iconهاى باز و بسته سرجاشون باشن فقط بجاى اون Text که نمایش داده مى‌شه من مى‌خوام یه RichTextBox نمایش بدم یا یه چیزى شبیه به اون. آیا امکانش هست؟


صبا صبوحى

behzad_gh
جمعه 25 اسفند 1385, 13:43 عصر
با سلام
یه مشکل هم من دارم، نمى‌دونم راه‌حل داره یا نه.
مى‌خوام یه کارى کنم که با Click شدن یا Double-Click شدن روى متن هر Node عمل Expand یا Collapse انجام نشه، فقط اگه روى Icon "+" یا "-" اگه Click شد این عملیات انجام بشه.
توى یه برنامه یه TreeView دارم که با Double-Click یا Click روى هر Node عمل خاصى رو انجام مى‌دم و نمى‌خوام با هر Click اون Node باز و یا بسته بشه.

یه پرسش دیگه هم دارم، آیا مى‌شه براى هر گره یه UserControl بجاى Item استاندارد گذاشت؟
منظورم اینه که خود TreeView به همراه جدول درختى و Iconهاى باز و بسته سرجاشون باشن فقط بجاى اون Text که نمایش داده مى‌شه من مى‌خوام یه RichTextBox نمایش بدم یا یه چیزى شبیه به اون. آیا امکانش هست؟


صبا صبوحى

سلام .
همه این کارها با درست کردن Custom Control قابل انجام است (‌البته زمان زیادی می‌گیرد و حوصله زیاد می‌خواهد. :چشمک: ) لینک زیر یک نمونه کنترل TreeView است که این امکان را می‌دهد تا قسمتی از Text بصورت Bold نوشته شود.
http://www.codeproject.com/vb/net/CustomDrawTreeview.asp

VisualStudio
دوشنبه 28 اسفند 1385, 12:19 عصر
دوست عزیز در کد دوم این DefaultNode چی هست آخه میزنه تعریف نشده و اشکال میگیریه این کد در همون روال Afterselect نوشته بشه در ضمن چطوری میشه در کد دوم به جای استفاده از خاصیت تگ از خاصیت نام استفاده کرد من در کد اول این کار را کردم میشه به صورت سورس در بیارید

behzad_gh
دوشنبه 28 اسفند 1385, 18:24 عصر
سلام . DefaultNode یک متغییر از نوع string است که خودتون باید تعریف کنید و مقدار اون رو برابر با Tag یا نام Node ی که می‌خواهید به صورت پیش فرض انتخاب شده باشد قرار دهید.
کد دوم رو می‌تونید در FormLoad قرار دهید. من سورسش رو هم درست می‌کنم و می‌آپلودم.

behzad_gh
دوشنبه 28 اسفند 1385, 18:45 عصر
این هم سورس . همینطور که در سورس می‌بینید من از خصوصیت Node.Name استفاده کردم که شما می‌توانید به جای اون از خصوصیت Tag یا Text نیز استفاده کنید .

Archin
سه شنبه 07 اسفند 1386, 17:09 عصر
سلام من می خوام ببینم چطوری میشه برای هر فیلد tree View یک رکورد چند فیلدی قرار داد

majid_labbeiky
جمعه 11 اردیبهشت 1388, 17:37 عصر
کسی کار با tree view توی vb6 رو آموزش میده ؟؟؟
خیلی فوری
کارم لنگه

Hossis
دوشنبه 02 شهریور 1388, 07:28 صبح
سلام من می خوام ببینم چطوری میشه برای هر فیلد tree View یک رکورد چند فیلدی قرار داد
بستگی داره چند فیل بخواهی نسبت بدی ،‌ اگه تا سه تا باشه می تونی از خاصیت text,tag و name هر نود استفاده کنی و اگر بیشتر باشه باید آرایه تعریف کنید و تگ هر نود رو در آرایه قرار بدید

کسی کار با tree view توی vb6 رو آموزش میده ؟؟؟
خیلی فوری
کارم لنگه
در خدمتم ،‌ هر سؤالی دارید چون با tv زیاد کار کردم