2009-03-05 14 views
3

Bir WinForms .NET 2.0 uygulamasında, hem bir etiketi hem de öğesinde bir metin kutusuna sahip bir ToolStripMenuItem içeren bir içerik menüsü oluşturmak istiyorum. Bir Access tablosunu görüntülerken, Access menüsünde bulunan, Access menüsünde bulunan "Filtreye Göre Filtrele", "Filtreden Çıkarma Filtresi" ve sonra da "Filtrele: _ _ _ _ _ _ _ ". Bu üçüncü seçenek, temel olarak, tek bir öğedeki bir etiket VE metin kutusudur. Nasıl yapılacağını anlayamadım.İki TextBox ve Etiket ile ToolStripMenuItem Oluşturma?

İki ayrı ToolStripMenuItems ile bunu uygulamakta sorun yaşamadım - biri metin için, sonra yalnızca metin kutusu olan bir çocuk. Ancak bu durum, Access'teki uygulama gibi güzel değil.

Bu konuda bana doğru yönlendiren var mı? Bulduğum her şeyin bir metin kutusunun bağlam menüleriyle ilgili olduğu anlaşıldığından, arama yaparken sorun yaşıyorum.

How to: Wrap a Windows Forms Control with ToolStripControlHost
ToolStripControlHost Class

, ben (ben bunu hiç tarz değil gibi unutmayın ki o korkunç görünüyor) yazdığı kısa bir demo:

İşte

cevap

2

bir sizin için cevaptır

(eğer tercih hangi dilde VB.net bunu tercih olarak ve siz belirtmedi)

Public Class ToolStripEntry 
    Inherits ToolStripControlHost 

    Public Sub New() 
     MyBase.New(New ControlPanel) 

    End Sub 

    Public ReadOnly Property ControlPanelControl() As ControlPanel 
     Get 
      Return CType(Me.Control, ControlPanel) 
     End Get 
    End Property 

End Class 


Public Class ControlPanel 
    Inherits Panel 

    Friend WithEvents txt As New TextBox //with events so you can just use the events 
    Friend WithEvents lbl As New Label //don think you can just do that in c#, but you get the idea 

    Public Sub New() 

     lbl.Anchor = AnchorStyles.Left Or AnchorStyles.Top Or AnchorStyles.Bottom 
     lbl.Text = "Test" 
     lbl.TextAlign = ContentAlignment.MiddleLeft 
     lbl.Size = New Size(30, Me.Height)   //think of somthing! 
     lbl.Location = New Point(0, 0) 
     lbl.Parent = Me 

     txt.Anchor = AnchorStyles.Left Or AnchorStyles.Right Or AnchorStyles.Top 
     txt.Location = New Point(lbl.Right, 0) 
     txt.Width = Me.Width - txt.Left 
     txt.Parent = Me 

    End Sub 

End Class 
+0

teşekkürler Andy! Tam olarak aradığım şey. Yanıtlar dokümanlardayken nefret ediyorum ve onu çok özledim. Bağlantı ve örnek için teşekkürler. – Rob3C

İlgili konular