Analog Meter (Ammeter/Voltmeter/etc) Control for C# and .NET

UPDATE: See my newest update, which includes a C# Oscilloscope and Analog Meter control!

This is another open source C# control that was developed for my Senior Design project. Its pretty obvious what it does from the following screenshot.


This is definitely a useful control for some projects, and is released under an open source license. This control implements a simple to use Analog Meter control, similar to old school analog meters used for all sorts of things. Obviously theres a lot more things that could be added to this, but this does what I need it to do at the moment. And, it looks quite nice if I do say so myself. 😉 Its very adjustable as well, with integrated designer support.


Add the control to your form, and adjust the Value parameter of the control to move the needle. Pretty easy to use. There are a bunch of other options, such as adjusting the frequency of the tick marks, but they should be mostly self evident as to what they do.

Enjoy! As always, let me know if you either use this or find a bug.

Download: Link

6 Responses to “Analog Meter (Ammeter/Voltmeter/etc) Control for C# and .NET”

  1. Jani says:

    I may be wrong, but this meter messes up when defining minimum value negative. This would be nice to use as a temperature meter if it accepted negative values.

  2. Michael Bender says:

    Hello, I love this control/meter and wonder if you could point me to a working version online somewhere. Also, I wonder if a third-party version could be “imported” via an iframe or some such? Or if there are other language-versions out there, such as an applet, or other. Thanks much — I’d like to make one into a christmas present of sorts!

  3. dandy says:

    I’ve had a quick play with the controls – very nice.
    Thanks for sharing.

  4. Rasmus Andersen says:

    Nice analog meter. Thank you for posting! Ditto Jani’s comment on negative values.

  5. Sanjay shinde says:

    i want to this control in my project. How can i add this control to my project.

  6. Pata says:

    For negative values just replace in function “private PointF[] GetLine”:

    float angle = value * (((float)Math.PI – tickStartAngle …


    float angle = (value – minValue) * (((float)Math.PI – tickStartAngle …

Leave a Reply