1. Ok, I see what you are talking about. No, I do not agree the logic needs to be changed. You are stretching an image that is 1 pixel in width or height. Different interpolation algorithms will render different results. The "auto" selection may not be ideal for every possible situation, but it will be for a majority of the cases. Since the control allows you to opt for different interpolations, I think that is good. Keep in mind, most people will not be using this control to stretch a 1 pixel image, they will be using it to display pictures vs. lines

2. Regarding drawing lines or circles. The Pre/PostPaint events really are not slow. When the property is set, a bitmap is created that lasts until WantPrePostEvents is set to false or the control is destroyed. Unless the image is nearly full screen, you shouldn't see any differences in speed.

Now it all depends on the quality you want for your circles and lines. A circle drawn with VB or GDI32 apis will not be alpha blended but are far easier to use. If you want smoother/blended edges for circles and diagonal lines, GDI+ may be ideal. You will still use Pre/PostPaint events, create a GDI+ DC, create a GDI+ brush and/or pen, set the interpolation for that DC, then draw a GDI+ line or circle. Browsing the graphics portion of the forum could be useful if you are not familiar with GDI+. This is one of my favorite GDI+ sites, but it is not really friendly to VB language. If I see questions regarding GDI+, I usually try to help, but won't use this thread for a GDI+ tutorial.