Hide parent term and show only second level
Assuming that when you say "When the parent term is visited" you mean at the taxonomy term page at taxonomy/term/[..], the view settings below will work.


View type : Term
Display : block
Pager : Display all items

Relationships : Taxonomy term: Parent term
> Identifier: Parent

Contextual filter : (Parent) Taxonomy term: Term ID
> Relationship : Parent
  > When the filter value is not available : Provide default value
    > Type: Taxonomy Term ID from URL
    > Load default filter from term page : checked


If you want the parent term to appear instead of the vocabulary name, also do:


  > When the filter value is available or a default is provided : Override title
    > (argument) %1


You can also enter a space instead of "%1" to clear it since the parent term already appears by default as page title (otherwise it will appear twice).

Finally, if you want to sort by term weight, also do:


Sort criteria : Taxonomy term: Weight (asc)


Enable the block to only display on taxonomy term pages, appearing above the main page content block.

You can also do some interesting things when you combine the Taxonomy Menu and Menu Block modules.

Hope that helps!