DotNetNuke is fully opensource, all of the code is within the source download.
ModuleID is in the file you're looking at. If you look about line 300 you'll see it's definition. It's readonly as it's only designed to expose an internal value. It's been marked as invisible to the designer for that reason.
<Browsable(False), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)> _
Public ReadOnly Property ModuleId() As Integer
Get
If Not _moduleConfiguration Is Nothing Then
Return Convert.ToInt32(_moduleConfiguration.ModuleID)
Else
Return Null.NullInteger
End If
End Get
End Property