Προς το περιεχόμενο

MenuStrip στο Visual Studio 2008


narbi

Προτεινόμενες αναρτήσεις

Δημοσ.

Γειά σας! Αποφάσισα πριν απο λίγο καιρό να μεταπηδήσω απο VB6 σε VB .net του VS2008. Φτιάχνοντας ένα προγραμματακι έτσι για γνωριμία με τη γλώσσα και το περιβάλλον διαπίστωσα ότι όταν δημιουργω ένα μενού στο πρόγραμμά μου με menu strip αυτό δεν κληρονομεί τα γραφικά των vista ή των 7 αλλά έχει εμφάνιση like XP.

Βέβαια,καθ'ότι δε μου είναι οικεία ακόμη η VB .net ίσως και να κάνω λάθος.. Αλλά όσο κι αν έπαιξα με τις ιδιότητες του Render δεν κατάφερα κάτι.. Όποιος γνωρίζει κάτι ας απαντησει παρακαλώ.. Ευχαριστώ!

Δημοσ.

ξεκινα απο αυτά, και θα βρεις και άλλα...

 

σχετική συζήτηση

http://www.neowin.net/forum/index.php?showtopic=599673

 

 

VistaMenu, custom control (free)

http://wyday.com/blog/2008/vista-menu-with-icons-in-c-sharp/

 

 

WindowsVistaRenderer @codeproject.com

http://www.codeproject.com/KB/vista/WindowsVistaRenderer.aspx?display=PrintAll&fid=471945&df=90&mpp=25&noise=3&sort=Position&view=Quick&fr=26&select=2332351

 

 

Windows Forms Aero is a project that aims to create a Windows Control Library that provides controls reproducing the appearance of Microsoft Aero graphic objects, like buttons and links with shield icon, textboxes with cue banner, etc.

http://windowsformsaero.codeplex.com/

 

 

 

 

 

 

ΥΓ. δεν εχω χρησιμοποιήσει τίποτα απο αυτα, κι εγω αρχάριος ειμαι σε .Net , αλλα νομιζω οτι υπάρχουν πολυ πιο ενδιαφέρονται θέματα για εξερεύνηση απο το vista look :-)

Δημοσ.

Σίγουρα υπάρδουν πιο ενδιαφέροντα πράγματα απο το vista look αλλά απο την άλλη είναι κ λίγο αστείο όταν στη VB6 μου εδινε by default vista look στο menu strip Κι όχι σε όλα τα άλλα και τώρα που το έχω σε όλα τα υπόλοιπα αντικέιμενα να μην το έχω στο menustrip...Επίσης με ενοχλούν και κάποια άλλα πράγματα στο VS2008 όσον αφορά στα εκτελέσιμα αλλα τεσπά..

Ευχαριστώ πάτως για την παράθεση των Links..

Δημοσ.

Παντος το Form ειναι win32 "gdi32", και τo Window ειναι direct. Γενικα η .net κανει dllimports τα win api. Θα σου παραθεσω και τη κλαση MenuStrip. Για να δεις τα defualt.

MenuStrip

 

><ComVisible(True), ClassInterface(ClassInterfaceType.AutoDispatch), SRDescription("DescriptionMenuStrip")> _
Public Class MenuStrip
   Inherits ToolStrip
   ' Events
   <SRCategory("CatBehavior"), SRDescription("MenuStripMenuActivateDescr")> _
   Public Event MenuActivate As EventHandler
       AddHandler(ByVal value As EventHandler)
           MyBase.Events.AddHandler(MenuStrip.EventMenuActivate, value)
       End AddHandler
       RemoveHandler(ByVal value As EventHandler)
           MyBase.Events.RemoveHandler(MenuStrip.EventMenuActivate, value)
       End RemoveHandler
   End Event
   <SRDescription("MenuStripMenuDeactivateDescr"), SRCategory("CatBehavior")> _
   Public Event MenuDeactivate As EventHandler
       AddHandler(ByVal value As EventHandler)
           MyBase.Events.AddHandler(MenuStrip.EventMenuDeactivate, value)
       End AddHandler
       RemoveHandler(ByVal value As EventHandler)
           MyBase.Events.RemoveHandler(MenuStrip.EventMenuDeactivate, value)
       End RemoveHandler
   End Event

   ' Methods
   Public Sub New()
       Me.CanOverflow = False
       Me.GripStyle = ToolStripGripStyle.Hidden
       Me.Stretch = True
   End Sub

   Protected Overrides Function CreateAccessibilityInstance() As AccessibleObject
       Return New MenuStripAccessibleObject(Me)
   End Function

   Protected Friend Overrides Function CreateDefaultItem(ByVal [text] As String, ByVal image As Image, ByVal onClick As EventHandler) As ToolStripItem
       If ([text] = "-") Then
           Return New ToolStripSeparator
       End If
       Return New ToolStripMenuItem([text], image, onClick)
   End Function

   Protected Overridable Sub OnMenuActivate(ByVal e As EventArgs)
       If MyBase.IsHandleCreated Then
           MyBase.AccessibilityNotifyClients(AccessibleEvents.SystemMenuStart, -1)
       End If
       Dim handler As EventHandler = DirectCast(MyBase.Events.Item(MenuStrip.EventMenuActivate), EventHandler)
       If (Not handler Is Nothing) Then
           handler.Invoke(Me, e)
       End If
   End Sub

   Protected Overridable Sub OnMenuDeactivate(ByVal e As EventArgs)
       If MyBase.IsHandleCreated Then
           MyBase.AccessibilityNotifyClients(AccessibleEvents.SystemMenuEnd, -1)
       End If
       Dim handler As EventHandler = DirectCast(MyBase.Events.Item(MenuStrip.EventMenuDeactivate), EventHandler)
       If (Not handler Is Nothing) Then
           handler.Invoke(Me, e)
       End If
   End Sub

   Friend Function OnMenuKey() As Boolean
       If (Me.Focused OrElse MyBase.ContainsFocus) Then
           Return False
       End If
       ModalMenuFilter.SetActiveToolStrip(Me, True)
       If (Me.DisplayedItems.Count > 0) Then
           If TypeOf Me.DisplayedItems.Item(0) Is SystemMenuItem Then
               MyBase.SelectNextToolStripItem(Me.DisplayedItems.Item(0), True)
           Else
               MyBase.SelectNextToolStripItem(Nothing, (Me.RightToLeft = RightToLeft.No))
           End If
       End If
       Return True
   End Function

   <SecurityPermission(SecurityAction.LinkDemand, Flags:=SecurityPermissionFlag.UnmanagedCode)> _
   Protected Overrides Function ProcessCmdKey(ByRef m As Message, ByVal keyData As Keys) As Boolean
       If ((Not ModalMenuFilter.InMenuMode OrElse (keyData <> Keys.Space)) OrElse (Not Me.Focused AndAlso MyBase.ContainsFocus)) Then
           Return MyBase.ProcessCmdKey((m), keyData)
       End If
       MyBase.NotifySelectionChange(Nothing)
       ModalMenuFilter.ExitMenuMode
       UnsafeNativeMethods.PostMessage(WindowsFormsUtils.GetRootHWnd(Me), &H112, &HF100, &H20)
       Return True
   End Function

   <SecurityPermission(SecurityAction.LinkDemand, Flags:=SecurityPermissionFlag.UnmanagedCode)> _
   Protected Overrides Sub WndProc(ByRef m As Message)
       If ((m.Msg = &H21) AndAlso (MyBase.ActiveDropDowns.Count = 0)) Then
           Dim point As Point = MyBase.PointToClient(WindowsFormsUtils.LastCursorPoint)
           Dim itemAt As ToolStripItem = MyBase.GetItemAt(point)
           If ((Not itemAt Is Nothing) AndAlso Not TypeOf itemAt Is ToolStripControlHost) Then
               Me.KeyboardActive = True
           End If
       End If
       MyBase.WndProc((m))
   End Sub


   ' Properties
   <SRDescription("ToolStripCanOverflowDescr"), SRCategory("CatLayout"), DefaultValue(False), Browsable(False)> _
   Public Property CanOverflow As Boolean
       Get
           Return MyBase.CanOverflow
       End Get
       Set(ByVal value As Boolean)
           MyBase.CanOverflow = value
       End Set
   End Property

   Protected Overrides ReadOnly Property DefaultGripMargin As Padding
       Get
           Return New Padding(2, 2, 0, 2)
       End Get
   End Property

   Protected Overrides ReadOnly Property DefaultPadding As Padding
       Get
           If (Me.GripStyle = ToolStripGripStyle.Visible) Then
               Return New Padding(3, 2, 0, 2)
           End If
           Return New Padding(6, 2, 0, 2)
       End Get
   End Property

   Protected Overrides ReadOnly Property DefaultShowItemToolTips As Boolean
       Get
           Return False
       End Get
   End Property

   Protected Overrides ReadOnly Property DefaultSize As Size
       Get
           Return New Size(200, &H18)
       End Get
   End Property

   <DefaultValue(0)> _
   Public Property GripStyle As ToolStripGripStyle
       Get
           Return MyBase.GripStyle
       End Get
       Set(ByVal value As ToolStripGripStyle)
           MyBase.GripStyle = value
       End Set
   End Property

   Friend Overrides Property KeyboardActive As Boolean
       Get
           Return MyBase.KeyboardActive
       End Get
       Set(ByVal value As Boolean)
           If (MyBase.KeyboardActive <> value) Then
               MyBase.KeyboardActive = value
               If value Then
                   Me.OnMenuActivate(EventArgs.Empty)
               Else
                   Me.OnMenuDeactivate(EventArgs.Empty)
               End If
           End If
       End Set
   End Property

   <MergableProperty(False), DefaultValue(CStr(Nothing)), SRDescription("MenuStripMdiWindowListItem"), TypeConverter(GetType(MdiWindowListItemConverter)), SRCategory("CatBehavior")> _
   Public Property MdiWindowListItem As ToolStripMenuItem
       Get
           Return Me.mdiWindowListItem
       End Get
       Set(ByVal value As ToolStripMenuItem)
           Me.mdiWindowListItem = value
       End Set
   End Property

   <DefaultValue(False), SRDescription("ToolStripShowItemToolTipsDescr"), SRCategory("CatBehavior")> _
   Public Property ShowItemToolTips As Boolean
       Get
           Return MyBase.ShowItemToolTips
       End Get
       Set(ByVal value As Boolean)
           MyBase.ShowItemToolTips = value
       End Set
   End Property

   <SRCategory("CatLayout"), DefaultValue(True), SRDescription("ToolStripStretchDescr")> _
   Public Property Stretch As Boolean
       Get
           Return MyBase.Stretch
       End Get
       Set(ByVal value As Boolean)
           MyBase.Stretch = value
       End Set
   End Property


   ' Fields
   Private Shared ReadOnly EventMenuActivate As Object = New Object
   Private Shared ReadOnly EventMenuDeactivate As Object = New Object
   Private mdiWindowListItem As ToolStripMenuItem

   ' Nested Types
   <ComVisible(True)> _
   Friend Class MenuStripAccessibleObject
       Inherits ToolStripAccessibleObject
       ' Methods
       Public Sub New(ByVal owner As MenuStrip)
           MyBase.New(owner)
       End Sub


       ' Properties
       Public Overrides ReadOnly Property Role As AccessibleRole
           Get
               Dim accessibleRole As AccessibleRole = MyBase.Owner.AccessibleRole
               If (accessibleRole <> AccessibleRole.Default) Then
                   Return accessibleRole
               End If
               Return AccessibleRole.MenuBar
           End Get
       End Property

   End Class
End Class

 

 

{Ποια greeklish;}

Χμμμ, μήπως δε χρησιμοποιείτε ελληνικούς χαρακτήρες στο μήνυμα σας ; Υπενθυμίζουμε ότι απαγορεύεται η χρήση greeklish

Χμμμ, μήπως δε χρησιμοποιείτε ελληνικούς χαρακτήρες στο μήνυμα σας ; Υπενθυμίζουμε ότι απαγορεύεται η χρήση greeklish

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...