Una constante, como su nombre indica es constante. Luego no puede adjudicarse ningún valor por procedimiento.
Cuando se compila el valor queda fijado... es decir todas las constantes con remplazadas por el valor contante. por eso siempre dará error cuando intentes asignarlo desde una ubicación que en sí misma no sea también una constante.
Es decir esto es válido:
Public Const c_Doce = 12
Public Const c_Trece = (c_Doce +1)
Y es válido porque c_doce tiene un valor que es constante y c_doce +1 , al ser tanto c_doce y 1 valores constantes es válido.
Esto no es válido:
Public MiVar As integer = 12
Public Const c_Doce = MiVar
En fin, tu debes saber si realmente necesitas una constante o una variable. Si has de asignar un valor desde un control numericUpDown, desde luego no es una constante lo que necesitas. O bien, no entiendes lo que significa constante.
Si todavía necesitas que el valor del control numericUpdown, quede en la constante, lo que debes hacer es revisar que valor tiene durante diseño y ese mismo valor consignarlo en la constante... que tiene numericUpDown5.Value = 52, pués vas a tu contante y le pones ese valor
Private Const mouted = 52
Pero no puedes asignarlo por código, porque entonces sería una variable.
Hay una solución pero no merece la pena en la mayoría de casos, aún así te la comento, por si soluciona tu caso (ya que siendo una variable, actúa realmente como una constante):
Private MiVar As Integer = 12
Public Property Mouted As Integer
Get
Return MiVar
End Get
Set(ByVal value As Integer)
Static FirstTime As Boolean = False
If (FirstTime = False) Then
MiVar = value
FirstTime = True
'Else
'Disparar error si se cree conveniente...
End If
End Set
End Property
Y que se utilizaría así:
Dim MD As Integer = NumericUpDown5.Value
Mouted = MD
Este código te permite asignar un valor procedente desde donde quieras, pero una sola vez, luego opera como si fuera una constante, se puede leer pero no escribir. y fíjate que por defecto, también le podemos dar inicialmente un valor...