I'm going to write a function using one of two above command, but I don't know which I should use.
What is the difference between them?
There is no real difference.
From MSDN
Hiding the control is equivalent to setting the Visible property to false. After the Hide method is called, the Visible property returns a value of false until the Show method is called.