نمایش نتایج 1 تا 10 از 10

نام تاپیک: جستجو در tree

  1. #1

    جستجو در tree

    توی یک tree میخوام یکی از node هامو شناسایی کنم
    البته بر اساس tag
    چی کار باید بکنم

  2. #2
    کسی نمی دونه باید چی کار کرد

  3. #3
    می تونید با استفاده از یک حلقه و پیمایش کلیه نودهای درخت خود به مطلب موردنظر برسید
    با استفاده از پارامتر nodes.count تعداد کل نودها را بدست بیارید و در یک حلقه از ابتدا تا مقدار موردنظر عبارت جستجو خود را با توجه به محتوی نود (یا تگ نود موردنظر) قیاس کرده و در صورت موفقیت آمیز بودن شرط موردنظر نود موردنظر را سلکت کنید و اگر قرار است عملیاتی براثر کلیک اون نود رخ دهد آن را نیز فراخوانی کنید
    مثال:

    cProperty = 'word search'
    _javab = 0
    FOR IJ = 1 TO treeview.Nodes.Count
    Tree_Text = treeview.Nodes.Item[ij].tag
    IF (Tree_Text=cProperty ) then
    _JAVAB = IJ
    EXIT for
    END IF
    Next
    if _javab<>0 then
    treeview.Nodes(_JAVAB).Selected = true
    ONODES = treeview.Nodes.Item[_JAVAB]
    treeview.NOdeClick(ONODES)
    treeview.SetFocus
    end if

  4. #4
    با تشکر از پاسخ شما
    ولی من تازه این کد ها را تست کردم و درست کار نمی کرد
    یعنی دستوراتی مثل select یا nodclick را نم شناخت
    حتی count مقدار درستی را نشان نمیداد
    (من درختم را در برنامه می سازم)

  5. #5
    treeview.Nodes.Count تعداد نود های ریشه رو نشان می دهد شما باید یک الگوریتمی بکار ببرید که نود را شناسایی و به درون زیر نود های اون رفته و عبارت را جستحو کند و بعد به نود پدر رفته و دیگر نود های فرزند رو پیمایش کند.
    من الگوریتم اونو ندارم وگرنه برات میزاشتم

  6. #6
    کاربر دائمی آواتار ghafoori
    تاریخ عضویت
    مرداد 1384
    محل زندگی
    اصفهان-نجف اباد
    پست
    1,111

    Smile

    من از یک تابع بازگشتی استفاده کردم این هم کد و برنامه

    Private node As New TreeNode
    Private t As New TreeNode

    Public Sub search(ByVal text As String, ByVal tree As TreeNodeCollection)
    For Each t In tree
    If t.Tag = text Then
    node.Nodes.Add(t.Text)
    End If
    If t.Nodes.Count > 0 Then
    Me.search(text, t.Nodes)
    End If
    Next
    End Sub

    این هم خود برنامهtreenode_search.zip

  7. #7
    با تشکر از پاسخ شما
    حالا من یه مشکل دیگه دارم
    من توی درختم میخوام با RC روی هر node یک contex menue باز شود
    اما مشکل اینجاست که برای انتخاب هر node باید اول روی اون کلیک کرد بعد RClick کرد
    در غیر این صورتmenu مربوط به nod قبلی را می یاره
    ایا راهی وجود داره که با راست کلیک روی یک نود اون نود انتخاب بشه

  8. #8
    کاربر دائمی آواتار ghafoori
    تاریخ عضویت
    مرداد 1384
    محل زندگی
    اصفهان-نجف اباد
    پست
    1,111

    Smile

    من خصوصیت خاصی برای اینکار پیدا نکردم ولی اگر کد زیر را در رویداد موس دان درخت قرار بدید مشکل شما حل می شود

    If e.Button = Windows.Forms.MouseButtons.Right Then
    Me.TreeView1.SelectedNode = e.Node
    End If

  9. #9
    با سلام وتشکر مجدد از شما
    این کد روی قسمت node ارور میده
    اصلا e چنین خصوصیتی نداره
    شاید به خاطر اینه که من از 2003 استفاده می کنم

  10. #10
    کاربر دائمی آواتار leilav_1984
    تاریخ عضویت
    مرداد 1384
    محل زندگی
    تهران
    پست
    307
    در بعضی از رویدادهای Treeview که e از نوع TreeNode یا انواع مشابه اونه ; مثل رویداد NodeMouseClick می تونی واسه خیلی کارا از e.Node استفاده کنی
    همین رویدادی که گفتم نودی رو که روش کلیک شده راحت واست مشخص می کنه و می تونی باهاش از طریق e.Node.Tag یا e.Node.Name و ... کار کنی

تاپیک های مشابه

  1. راست به چپ کردن TREE
    نوشته شده توسط ar_monti@ در بخش ASP.NET Web Forms
    پاسخ: 5
    آخرین پست: جمعه 16 شهریور 1386, 23:27 عصر
  2. Tree
    نوشته شده توسط ar_monti@ در بخش ASP.NET Web Forms
    پاسخ: 10
    آخرین پست: چهارشنبه 30 خرداد 1386, 09:18 صبح
  3. B+tree سورس
    نوشته شده توسط هامان در بخش برنامه نویسی با زبان C و ++C
    پاسخ: 0
    آخرین پست: جمعه 16 تیر 1385, 06:56 صبح
  4. استفاده از Tree در برنامه‌ها
    نوشته شده توسط hbi در بخش برنامه نویسی در 6 VB
    پاسخ: 11
    آخرین پست: یک شنبه 29 شهریور 1383, 21:35 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •