Let's say you have a <div> with an ID="divUserControls" and runat="server". Have you tried putting code like the following in your Button_Click event?
Protected Sub UC_ButtonClick(byval sender as object, byval e as systme.eventargs)
' Me refers to this instance of the usercontrol.
' Parent would be the parent control, in this case <div>
Me.Parent.Controls.Remove(Me.ID)
End Sub
Or, you could load both controls initially and set visibility and enabled properties to make it look how you want.
Or, if the first method doesn't work, just create an event within your first control, and raise that event when your button is clicked. Then the page the controls are on can take care of disabling and enabling controls. This would probably be the easiest and most efficient way, since you may use the first control in a different app without the second control.