Rechtsklick- Frage
-
Montag, 19. Juli 2010 17:55
Hallo
ich habe eine Frage, nur weiss ich nicht ob das geht. Folgendes ich möchte gern ein Form per Rechtsklick aufrufen habe dazu aber nichts gefunden bis jetzt.
Die form ist nicht sehr groß und die als erweitertes Menü für bestimmte Benutzeraktionen.
Ist so etwas möchlich mit rechten Mausklick?
LG
Köhler
Antworten
-
Montag, 19. Juli 2010 19:49Moderator
Hallo,ich habe eine Frage, nur weiss ich nicht ob das geht. Folgendes ich möchte gern ein Form per Rechtsklick aufrufen habe dazu aber nichts gefunden bis jetzt.
Die form ist nicht sehr groß und die als erweitertes Menü für bestimmte Benutzeraktionen.
Sehr einfach gehalten und nur als grober Ansatz gedacht:
Public Class Form1 Private Sub Form1_MouseUp(ByVal sender As Object, _ ByVal e As System.Windows.Forms.MouseEventArgs _ ) Handles Me.MouseUp If e.Button = Windows.Forms.MouseButtons.Right Then Dim f As New Form2() f.Location = Me.PointToScreen(e.Location) f.StartPosition = FormStartPosition.Manual f.Show() End If End Sub End ClassFür Form2 dann noch im Deactivate Ereignis das Abräumen:
Public Class Form2 Private Sub Form2_Deactivate(ByVal sender As Object, _ ByVal e As System.EventArgs _ ) Handles Me.Deactivate Me.Close() End Sub End ClassDas ganze ist ausbaufähig. So verliert bspw. bei einem echten Menü das Formular nicht den Fokus.
Denkbare Alternative wäre auch ein eigenes UserControl, als Formularersatz, das über die ToolStripControlHost Klasse die Fähigkeit bekommt, als Item in einem normalen ContextMenuStrip verwendet werden zu können. Damit umgehst Du gewöhnungsbedürftige Fokusverhalten und kommst der Menüfunktion näher.
Gewusst wie: Verwenden eines ToolStripControlHost als Wrapper für ein Windows Forms-Steuerelement
http://msdn.microsoft.com/de-de/library/9k5etstz.aspx
Vielleicht beschreibst Du auch noch einmal genauer, was Du erreichen möchtest und wo geklickt werden soll.
Thorsten Dörfler
Microsoft MVP Visual Basic
vb-faq.de
Alle Antworten
-
Montag, 19. Juli 2010 19:42Ich denke jeder hier wird Schwierigkeiten haben deine Frage zu verstehen. Versuche dein Problem bitte noch einmal ausführlich zu erklären. Beispiel um generell einen Rechtsklick abzufangen: Im MouseClick-Event überprüfen ob e.Button = Windows.Forms.MouseButtons.Right
- Bearbeitet chrixko Montag, 19. Juli 2010 19:52 Erweiterung
-
Montag, 19. Juli 2010 19:49Moderator
Hallo,ich habe eine Frage, nur weiss ich nicht ob das geht. Folgendes ich möchte gern ein Form per Rechtsklick aufrufen habe dazu aber nichts gefunden bis jetzt.
Die form ist nicht sehr groß und die als erweitertes Menü für bestimmte Benutzeraktionen.
Sehr einfach gehalten und nur als grober Ansatz gedacht:
Public Class Form1 Private Sub Form1_MouseUp(ByVal sender As Object, _ ByVal e As System.Windows.Forms.MouseEventArgs _ ) Handles Me.MouseUp If e.Button = Windows.Forms.MouseButtons.Right Then Dim f As New Form2() f.Location = Me.PointToScreen(e.Location) f.StartPosition = FormStartPosition.Manual f.Show() End If End Sub End ClassFür Form2 dann noch im Deactivate Ereignis das Abräumen:
Public Class Form2 Private Sub Form2_Deactivate(ByVal sender As Object, _ ByVal e As System.EventArgs _ ) Handles Me.Deactivate Me.Close() End Sub End ClassDas ganze ist ausbaufähig. So verliert bspw. bei einem echten Menü das Formular nicht den Fokus.
Denkbare Alternative wäre auch ein eigenes UserControl, als Formularersatz, das über die ToolStripControlHost Klasse die Fähigkeit bekommt, als Item in einem normalen ContextMenuStrip verwendet werden zu können. Damit umgehst Du gewöhnungsbedürftige Fokusverhalten und kommst der Menüfunktion näher.
Gewusst wie: Verwenden eines ToolStripControlHost als Wrapper für ein Windows Forms-Steuerelement
http://msdn.microsoft.com/de-de/library/9k5etstz.aspx
Vielleicht beschreibst Du auch noch einmal genauer, was Du erreichen möchtest und wo geklickt werden soll.
Thorsten Dörfler
Microsoft MVP Visual Basic
vb-faq.de -
Montag, 19. Juli 2010 19:51
Hallo
ich möchte gern eine Form per rechtsklick aufrufen.
Form1 per rechtsklick form2 aufrufen
LG
Köhler
-
Montag, 19. Juli 2010 19:55
Hallo,
ich habe eine Frage, nur weiss ich nicht ob das geht. Folgendes ich möchte gern ein Form per Rechtsklick aufrufen habe dazu aber nichts gefunden bis jetzt.
Die form ist nicht sehr groß und die als erweitertes Menü für bestimmte Benutzeraktionen.
Sehr einfach gehalten und nur als grober Ansatz gedacht:
Public Class Form1 Private Sub Form1_MouseUp(ByVal sender As Object, _ ByVal e As System.Windows.Forms.MouseEventArgs _ ) Handles Me.MouseUp If e.Button = Windows.Forms.MouseButtons.Right Then Dim f As New Form2() f.Location = Me.PointToScreen(e.Location) f.StartPosition = FormStartPosition.Manual f.Show() End If End Sub End Class
Für Form2 dann noch im Deactivate Ereignis das Abräumen:
Public Class Form2 Private Sub Form2_Deactivate(ByVal sender As Object, _ ByVal e As System.EventArgs _ ) Handles Me.Deactivate Me.Close() End Sub End Class
Das ganze ist ausbaufähig. So verliert bspw. bei einem echten Menü das Formular nicht den Fokus.
Denkbare Alternative wäre auch ein eigenes UserControl, als Formularersatz, das über die ToolStripControlHost Klasse die Fähigkeit bekommt, als Item in einem normalen ContextMenuStrip verwendet werden zu können. Damit umgehst Du gewöhnungsbedürftige Fokusverhalten und kommst der Menüfunktion näher.
Gewusst wie: Verwenden eines ToolStripControlHost als Wrapper für ein Windows Forms-Steuerelement
http://msdn.microsoft.com/de-de/library/9k5etstz.aspxVielleicht beschreibst Du auch noch einmal genauer, was Du erreichen möchtest und wo geklickt werden soll.
Thorsten Dörfler
Microsoft MVP Visual Basic
vb-faq.de
Also ich erstelle gerade ein Texteditor und nutze die besagte Form wie als Menü für verschiedeen Formatierungsmöglichkeiten. Klar geht es auch mit den Contexmenü aber ich möchte was neues ausprobieren. Vielleicht als vergleich ähnlich wie bei Office 2007, aber nicht genauso.LG
Köhler
-
Montag, 19. Juli 2010 20:53
Hallo,
ich habe eine Frage, nur weiss ich nicht ob das geht. Folgendes ich möchte gern ein Form per Rechtsklick aufrufen habe dazu aber nichts gefunden bis jetzt.
Die form ist nicht sehr groß und die als erweitertes Menü für bestimmte Benutzeraktionen.
Sehr einfach gehalten und nur als grober Ansatz gedacht:
Public Class Form1 Private Sub Form1_MouseUp(ByVal sender As Object, _ ByVal e As System.Windows.Forms.MouseEventArgs _ ) Handles Me.MouseUp If e.Button = Windows.Forms.MouseButtons.Right Then Dim f As New Form2() f.Location = Me.PointToScreen(e.Location) f.StartPosition = FormStartPosition.Manual f.Show() End If End Sub End Class
Für Form2 dann noch im Deactivate Ereignis das Abräumen:
Public Class Form2 Private Sub Form2_Deactivate(ByVal sender As Object, _ ByVal e As System.EventArgs _ ) Handles Me.Deactivate Me.Close() End Sub End Class
Das ganze ist ausbaufähig. So verliert bspw. bei einem echten Menü das Formular nicht den Fokus.
Denkbare Alternative wäre auch ein eigenes UserControl, als Formularersatz, das über die ToolStripControlHost Klasse die Fähigkeit bekommt, als Item in einem normalen ContextMenuStrip verwendet werden zu können. Damit umgehst Du gewöhnungsbedürftige Fokusverhalten und kommst der Menüfunktion näher.
Gewusst wie: Verwenden eines ToolStripControlHost als Wrapper für ein Windows Forms-Steuerelement
http://msdn.microsoft.com/de-de/library/9k5etstz.aspxVielleicht beschreibst Du auch noch einmal genauer, was Du erreichen möchtest und wo geklickt werden soll.
Thorsten Dörfler
Microsoft MVP Visual Basic
vb-faq.de
Also ich erstelle gerade ein Texteditor und nutze die besagte Form wie als Menü für verschiedeen Formatierungsmöglichkeiten. Klar geht es auch mit den Contexmenü aber ich möchte was neues ausprobieren. Vielleicht als vergleich ähnlich wie bei Office 2007, aber nicht genauso.LG
Köhler
Hallohabe gerade mal den Ansatz ausprobiert und es klappt so wie ich es mir vorstellen.
Vielen Dank erstmal
LG
Köhler

