A very, very late answer, just because I happened to struggle with the same issue and googled up this question. What I found as the best solution adds one nice twist to the answers so far. Here it is:
void toolStripItem_MouseUp(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
var label = (ToolStripItem)sender;
this.contextMenuStrip1.Show(this.mainStatusStrip, label.Bounds.X + e.X, label.Bounds.Y + e.Y);
}
}
Adding the mouse coordinates relative to the control (e.X, e.Y) to the bounds coordinates makes the menu appear at exactly the right position. Omitting this shows the menu at the top left corner of the ToolStripItem. For the record.