The effect you are asking for is called a gradient - a smooth transition from one color to another. By simply changing the background color, this effect cannot be achieved.
In WinForms, there are no ready-made tools to get a gradient, but you can instead substitute a suitable texture as a background image.
Thus, the task is reduced to obtaining the desired texture, and for this you can either manually paint a Bitmap as you like, or prepare the texture in advance in a convenient graphic editor.
If a strictly vertical or strictly horizontal gradient is required, then the size of the texture can be 1 * n or n * 1 pixels, respectively. n selected to obtain the desired smoothness of the gradient.
To get the effect, you need to set the necessary texture in the Control.BackgroundImage property and set the necessary value for background scaling in the Control.BackgroundImageLayout property, for example Stretch for textures of size 1 * n or n * 1 .