Bueno, ya encontre la respuesta, y me parece que está bueno que la comparta, pues creo que a muchos les puede interesar, no es tan complicado como pensaba. solo hay que hacer una imagen con cualquier programa para imagenes (hasta con el Paint se puede hacer) por ejemplo un simple círculo, este tiene que tener un color (por ej: rojo) y un fondo de un color diferente al círculo (por ej: blanco), luego asignarle esa imagen a la propiedad BackgroundImage del formulario, después a la propiedad TransparencyKey, el color de fondo de la imagen, esto hace que todo lo que sea del color que se le asigna a esta propiedad sea transparente, en nuestro ejemplo Blanco, luego a la propiedad FormBorderStyle, asignarle el valor None de esta forma el formulario no tendrá bordes ni barra de título, solo se verá el círculo rojo de nuestra imagen, ahora ya está listo ya tenemos un formulario circular. pero hay algo que se debe tener en cuenta, al no tener la barra anteriormente mensionada, deja el programa de tener algo importante, en principio no podemos minimizar ni max. ni cerrar el form, eso es fácil, le agregamos algunos botones y listo, ahora el problema es que no podemos moverlo (jeje pequeño detalle) pero aquí va la solución:
Se deben declarar estos dos objetos como globales y luego agregar los tres métodos siguientes, y sus respectivos eventos, en este caso los agregué en el Form_Load
public Point mouseOffset;
public bool isMouseDown = false;
private void Form1_Load(object sender, EventArgs e)
{
this.MouseDown += new System.Windows.Forms.MouseEventHandler(this.Form1_MouseDown);
this.MouseMove += new System.Windows.Forms.MouseEventHandler(this.Form1_MouseMove);
this.MouseUp += new MouseEventHandler(Form1_MouseUp);
}
private void Form1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{
int xOffset;
int yOffset;
if (e.Button == MouseButtons.Left)
{
xOffset = -e.X - SystemInformation.FrameBorderSize.Width;
yOffset = -e.Y - SystemInformation.CaptionHeight -
SystemInformation.FrameBorderSize.Height;
mouseOffset = new Point(xOffset, yOffset);
isMouseDown = true;
}
}
private void Form1_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
{
if (isMouseDown)
{
Point mousePos = Control.MousePosition;
mousePos.Offset(mouseOffset.X, mouseOffset.Y);
Location = mousePos;
}
}
private void Form1_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
{
// Changes the isMouseDown field so that the form does
// not move unless the user is pressing the left mouse button.
if (e.Button == MouseButtons.Left)
{
isMouseDown = false;
}
}
eso es todo ahora podemos mover el formulario posicionando el puntero en el círculo rojo que es nuestro formulario hacer click y moverlo como se nos antoje!!!!!