اضافه کردن منو به TreeView در ویژوال بیسیک دات نت

ms_vb

Member
سلام
چطور یک component بسازم که از TreeView ارث بری کنه و هروقت روی هر کدام از Node هاش کلیک کردم یک منو که آنهم در این کامپاننت ساخته شده به نمایش در بیاید
نمی دانم توانستم منظورم رو برسانم یا نه تقریبا یه چیزی مثل textbox که اگه روش کلیک راست کنی یه منو ظاهر میشه که حاوی copy و paste و ... هستش
 

the_king

مدیرکل انجمن
سلام
چطور یک component بسازم که از TreeView ارث بری کنه و هروقت روی هر کدام از Node هاش کلیک کردم یک منو که آنهم در این کامپاننت ساخته شده به نمایش در بیاید
نمی دانم توانستم منظورم رو برسانم یا نه تقریبا یه چیزی مثل textbox که اگه روش کلیک راست کنی یه منو ظاهر میشه که حاوی copy و paste و ... هستش

یک کلاس اینطوری به پروژه اضافه کنید و پروژه را Build کنید تا ClassTreeView به بالای منوی Toolbox اضافه بشه :
کد:
Public Class ClassTreeView
    Inherits TreeView

    Private menu As New ContextMenuStrip

    Public Sub New()
        menu.Items.Add("Sample 1", Nothing, AddressOf Item1_Click)
        menu.Items.Add("Sample 2", Nothing, AddressOf Item2_Click)
    End Sub

    Private Sub Item1_Click(ByVal sender As Object, ByVal e As System.EventArgs)
        MessageBox.Show("Item1_Click")
    End Sub

    Private Sub Item2_Click(ByVal sender As Object, ByVal e As System.EventArgs)
        MessageBox.Show("Item2_Click")
    End Sub

    Protected Overrides Sub OnNodeMouseClick(ByVal e As System.Windows.Forms.TreeNodeMouseClickEventArgs)
        e.Node.ContextMenuStrip = menu
        MyBase.OnNodeMouseClick(e)
    End Sub

End Class

الان اگر بجای TreeView استاندارد از این ClassTreeView استفاده کنید، زمانی که روی یک Node راست کلیک
می کنید OnNodeMouseClick فراخوانی میشه. در این رخداد کدی نوشته ام که در همون لحظه منوی menu به
اون Node که رویش کلیک شده متصل بشه، در نتیجه menu باز خواهد شد.
برای مثال دو گزینه Sample 1 و Sample 2 را در آن منو قرار داده ام که البته به دلخواه تان قابل تغییر است.
 

جدیدترین ارسال ها

بالا