2016-02-08 2 views
0

Так что я искал и искал Google, но я просто не могу найти ответ. Я пытаюсь установить контекстное меню текстового поля в контекстное меню, а не в контекстное меню. В окне свойств это не позволяет мне установить контекстное меню, просто полосу контекстного меню. Может ли кто-нибудь показать мне, как установить контекстное меню в текстовое поле? Я знаю, что этот ответ может быть где-то уже, но я просто не могу его найти.ContextMenu в Visual Studio

+0

Пожалуйста, покажите, что вы попробовали первый. Если вы застряли, мы можем вам помочь. – Codexer

+0

Недвижимость просто скрыта. Отрежьте пуповину мыши и напишите код. Назначьте свойство ContextMenu в своем конструкторе Sub New. –

ответ

0

Вы должны сначала создать ContextMenu. Тогда сделайте это

private void InitializeAltContextMenu() 
{ 
    mnuContextDefault = new ContextMenu(); 
    mnuContextDefault = this.TextBox1.ContextMenu; 

    mnuItmAltMenuTest = new MenuItem(); 
    mnuItmAltMenuTest.Index = -1; 
    mnuItmAltMenuTest.Text = "Test Menu Item"; 
    mnuItmAltMenuTest.Click += new System.EventHandler(this.mnuItmAltMenuTest_Click); 

    mnuContextAlt = new ContextMenu(); 
    mnuContextAlt.MenuItems.Add(mnuItmAltMenuTest); 
} 
private void TextBox1_MouseDown(object sender, MouseEventArgs e) 
    { 
     if (e.Button == MouseButtons.Right) 
     { 
      if ((Control.ModifierKeys == Keys.Control)) 
      { 
       this.TextBox1.ContextMenu = mnuContextAlt; 
       TextBox1.ContextMenu.Show(TextBox1, new Point(e.X, e.Y)); 
      } 
      else 
      { 
       this.TextBox1.ContextMenu = mnuContextDefault; 
      } 
     } 
    } 

VB.NET КОД UPDATE

Private Sub InitializeAltContextMenu() 
    mnuContextDefault = New ContextMenu() 
    mnuContextDefault = Me.TextBox1.ContextMenu 

    mnuItmAltMenuTest = New MenuItem() 
    mnuItmAltMenuTest.Index = -1 
    mnuItmAltMenuTest.Text = "Test Menu Item" 
    mnuItmAltMenuTest.Click += New System.EventHandler(Me.mnuItmAltMenuTest_Click) 

    mnuContextAlt = New ContextMenu() 
    mnuContextAlt.MenuItems.Add(mnuItmAltMenuTest) 
End Sub 
Private Sub TextBox1_MouseDown(sender As Object, e As MouseEventArgs) 
    If e.Button = MouseButtons.Right Then 
     If (Control.ModifierKeys = Keys.Control) Then 
      Me.TextBox1.ContextMenu = mnuContextAlt 
      TextBox1.ContextMenu.Show(TextBox1, New Point(e.X, e.Y)) 
     Else 
      Me.TextBox1.ContextMenu = mnuContextDefault 
     End If 
    End If 
End Sub 
+1

Пожалуйста, не кормите эти вопросы. OP не смогла показать, что они сделали и где они застряли. В длинном неправильном это не помогает людям, просто выкидывая код, это не обучение. Также это помогает продвигать отладку, которая имеет решающее значение. – Codexer

+0

Вы правы, хотя мы не должны перестать им помогать. – Hemal

+0

Еще одна вещь, не могли бы вы объяснить OP, где это происходит именно так, что она делает и преобразует ее в VB, что и помечен OP. – Codexer