You need to check your other code - if I try your code in one of my apps, it works fine:
static int x = 0;
private void LoadFromFile_Click(object sender, EventArgs e)
{
chart.MouseMove += new MouseEventHandler(chart_MouseMove);
}
private void SaveToFile_Click(object sender, EventArgs e)
{
chart.MouseMove -= new MouseEventHandler(chart_MouseMove);
}
private void chart_MouseMove(object sender, MouseEventArgs e)
{
label1.Text = (x++).ToString();
}
When I move over the control, the label doesn't change. Press the first button, and it increments. Press the second, it stops changing. Repeat and it works every time (provided I don't add two handlers and only remove one in which case a second remove takes that out as well.).