Look at your code:
private void equal_Click(object sender, EventArgs e)
{
...
h = e - b;
...
}
e
is a parameter to the
equal_Click
method: so it "hides" the version at class level.
There are a couple of ways round this, but the best solution is to simply stop using single character variable names and use names that are descriptive of what the variable does, or is used for.
That way, you code becomes much easier to read and work on, more self documenting, and more reliable because it's obvious when you type something like this by mistake:
total = total + myMothersBrithday;
but not when it looks like this:
h = h + m;