Solved

Setting NumericUpDown to Read Only has no effect.

Posted on 2009-03-30
4
260 Views
Last Modified: 2013-11-25
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
Comment
Question by:GarySB
  • 2
4 Comments
 
LVL 69

Expert Comment

by:Éric Moreau
Comment Utility
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
 

Author Comment

by:GarySB
Comment Utility
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
 
LVL 48

Accepted Solution

by:
jpaulino earned 125 total points
Comment Utility
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
 

Author Closing Comment

by:GarySB
Comment Utility
It Works Great!!! Thank You
0

Featured Post

How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

Join & Write a Comment

Introduction While answering a recent question about filtering a custom class collection, I realized that this could be accomplished with very little code by using the ScriptControl (SC) library.  This article will introduce you to the SC library a…
Enums (shorthand for ‘enumerations’) are not often used by programmers but they can be quite valuable when they are.  What are they? An Enum is just a type of variable like a string or an Integer, but in this case one that you create that contains…
Get people started with the process of using Access VBA to control Excel using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Excel. Using automation, an Access application can laun…
Get people started with the utilization of class modules. Class modules can be a powerful tool in Microsoft Access. They allow you to create self-contained objects that encapsulate functionality. They can easily hide the complexity of a process from…

744 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

17 Experts available now in Live!

Get 1:1 Help Now