Set the StartPosition property to Manual. Use the Load event to change the position, the earliest you'll know the actual size of the window:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.StartPosition = FormStartPosition.Manual;
}
private void Form1_Load(object sender, EventArgs e)
{
Screen scr = Screen.FromPoint(this.Location);
this.Location = new Point(scr.WorkingArea.Right - this.Width, scr.WorkingArea.Top);
}
}
Cheers