Improve company productivity with a Business Account.Sign Up

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 334
  • Last Modified:

Setting NumericUpDown to Read Only has no effect.

I need to keep the NumericUpDown control set to enabled for visual purposes and I have set the readonly property to true.  It still changes the value.  A msgbox appears since I am able to test for the ReadOnly property being true and I exist the ValueChanged procedure, but it still changes the value.  How can I prevent this?
VB Express 2008
0
GarySB
Asked:
GarySB
  • 2
1 Solution
 
Éric MoreauSenior .Net ConsultantCommented:
have a look at http://www.emoreau.com/Entries/Articles/2005/07/Colors-of-disabled-controls.aspx.

I have overwritten many controls (but not the NumericUpDown) to set the wanted colors when controls are disabled.
0
 
GarySBAuthor Commented:
Thank You, but I was not able to apply it.  Unless a reasonable amount of code can be found I will have to change my contorls to a label which I wanted to avoid.
0
 
Jorge PaulinoIT Pro/DeveloperCommented:
You can create your class and simulate the Readonly Property (in the other controls) without changing the colors.
Create a new class and paste this code (check code snippet) and build tthe application. You will have a new control in the toolbox that you can use this way:

Me.ReadOnlyNumericUpDown1.ReadOnly = True

Class ReadOnlyNumericUpDown
    Inherits NumericUpDown
 
    Private m_ReadOnly As Boolean
    Shadows Property [ReadOnly]() As Boolean
        Get
            Return m_ReadOnly
        End Get
        Set(ByVal value As Boolean)
            m_ReadOnly = value
        End Set
    End Property
 
    Public Overrides Sub UpButton()
        If Not Me.ReadOnly Then
            MyBase.UpButton()
        End If
    End Sub
 
    Public Overrides Sub DownButton()
        If Not Me.ReadOnly Then
            MyBase.DownButton()
        End If
    End Sub
 
    Protected Overrides Sub OnKeyDown(ByVal e As System.Windows.Forms.KeyEventArgs)
        If Not Me.ReadOnly Then
            MyBase.OnKeyDown(e)
        Else
            e.SuppressKeyPress = True
        End If
    End Sub
 
End Class

Open in new window

0
 
GarySBAuthor Commented:
It Works Great!!! Thank You
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now