Ciao, premeto che tutto il codice che sto usando l' ho copiato dal libro.
Dunque il controllo utente dovrebbe fare una calcolatrice e questo e il codice che mi da errore
codice:
<script Language="VB" runat="server">
	private answer as double
	
	Sub btOperator_Click(obj as object, e as eventargs)
		if (hiddenvalue.value <> "" and hiddenvalue.value <> "0")
			tbNumber.Text = Operate(obj.Text, hiddenvalue.value, tbNumber.Text)
			hiddenvalue.value = ""
			hiddenoperator.value = ""
		else
			'salva il vechio numero come campo 
			'nascosto e ripulisci il text box
			hiddenvalue.value = tbNumber.Text
			hiddenoperator.value = obj.Text
			tbNumber.Text = "0"
		end if
	End Sub
	
	Sub btSpecOperator_Click(obj as object, e as eventargs)
		tbNumber.Text = Operate(obj.Text, hiddenvalue.value, tbNumber.Text)
		hiddenvalue.value = ""
		hiddenoperator.value = ""
	End Sub
	
	Sub btNumber_click(obj as object, e as eventargs)
		response.write(answer.ToString)
		if tbNumber.Text <> "0" then
			tbNumber.Text = tbNumber.Text & obj.Text
		else
			tbNumber.Text = obj.Text
			answer = nothing
		end if
	End Sub
	
	Sub btClear_Click(obj as object, e as eventargs)
		tbNumber.Text = "0"
		hiddenoperator.value = ""
		hiddenvalue.value = ""
	End Sub
	
	Sub btBS_Click(obj as object, e as eventargs)
		if tbNumber.Text <> "0" then
			tbNumber.Text = Left(tbNumber.Text, len(tbNumber.Text)-1)
		end if
	End Sub
	
	Sub btMemory_Click(obj as object, e as eventargs)
		select case obj.Text
			case "MC"
				Session("memory") = ""
				Indicator.Text = ""
			case "MS"
				Session("memory") = tbNumber.Text
				Indicator.Text = "M"
			case "MR"
				tbNumber.text = Session("memory")
			case "M+"
			
		end select
	End Sub
	
	Sub btEqual_Click(obj as object, e as eventargs)
		if hiddenvalue.value <> "" then
			if hiddenoperator.value <> "" then
			'opera i numeri
			tbNumber.Text = Operate(hiddenoperator.value, hiddenvalue.value, tbNumber.Text)
			hiddenvalue.value = ""
			hiddenoperator.value = ""
			answer = tbNumber.Text
		else
			'nessuna operazione
		end if
	else
		'nessuna operazione
	end if
	End Sub  
	
	private function Operate(operator as string, number1 as string, optional number2 as string = "1") as double
		select case operator
			case "+"
				Operate = CDbl(number1) + CDbl(number2)
			case "-"
				Operate = CDbl(number1) - CDbl(number2)
			case "*" 
				Operate = CDbl(number1) * CDbl(number2)
			case "/"
				Operate = CDbl(number1) / CDbl(number2)
			case "sqrt"
				Operate = CDbl(Math.sqrt(number2))
			case "1/x"
				Operate = CDbl(1 / CDbl(number2))
			case "+/-"
			    Operate = CDbl(-CDbl(number2))
		end select
	end function
</script>

<asp:Panel ID="Frame" runat="server">
	<table width="250">
	<tr>
		<td width="100%" colspan="7">
			<asp:TextBox ID="tbNumber" runat="server"
				text="0"
				enabled="false"
				width="100%" />
		</td>
	</tr>
	<tr>
		<td align="right" width="100%" colspan="7">
			<asp:Label ID="Indicator" Text="" runat="server" />
			<asp:Button ID="btBS" Text="Backspace"
				OnClick="btBS_Click" runat="server" Width="75" />
			<asp:Button ID="btClear" Text="C"
				OnClick="btClear_Click" runat="server" Width="35" />
		</td>
	</tr>
	<tr>
		<td width="32" valign="top">
			<asp:Button ID="btMC" Text="MC"
				OnClick="btMemory_Click" runat="server"
				width="35" />
		</td>
		<td width="58"></td>
		<td width="32">
			<asp:Button ID="bt7" Text="7"
				OnClick="btNumber_Click" runat="server"
				width="35" />

</p>
		</td>		
		<td width="32">
			<asp:Button ID="bt8" Text="8"
				OnClick="btNumber_Click" runat="server"
				width="35" />

</p>
		</td>
		<td width="32">
			<asp:Button ID="bt9" Text="9"
				OnClick="btNumber_Click" runat="server"
				width="35" />

</p>
		</td>
		<td width="32">
			<asp:Button ID="btDivide" Text="/"
				OnClick="btOperator_Click" runat="server"
				width="35" />

</p>
		</td>
		<td width="32">
			<asp:Button ID="btSqrt" Text="sqrt"
				OnClick="btSpecOperator_Click" runat="server"
				width="35" />

</p>
		</td>
	</tr>
	<tr>
		<td width="32" valign="top">
			<asp:Button ID="btMR" Text="MR"
				OnClick="btMemory_Click" runat="server"
				width="35" />
		</td>
		<td width="8"></td>
		<td width="32">
			<asp:Button ID="bt4" Text="4"
				OnClick="btNumber_Click" 
				runat="server" width="35" />

</p>
		</td>
		<td width="32">
			<asp:Button ID="bt5" Text="5"
				OnClick="btNumber_Click" runat="server"
				width="35" />

</p>
		</td>
		<td width="32">
			<asp:Button ID="bt6" Text="6"
				OnClick="btNumber_Click" runat="server"
				width="35" />

</p>
		</td>
		<td width="32">
			<asp:Button ID="btMultiply" Text="*"
				OnClick="btOperator_Click" runat="server"
				width="35" />

</p>
		</td>
		<td width="32">
			<asp:Button ID="btPercent" Text="%"
				OnClick="btOperator_Click" runat="server"
				width="35" />

</p>
		</td>
	</tr>
	<tr>
		<td width="32" valign="top">
			<asp:Button ID="btMS" Text="MS"
				OnClick="btMemory_Click" runat="server"
				width="35" />

</p>
		</td>
		<td width="8"></td>
		<td width="32">
			<asp:Button ID="bt1" Text="1"
				OnClick="btNumber_Click" runat="server"
				width="35" />

</p>
		</td>
		<td width="32">
			<asp:Button ID="bt2" Text="2"
				OnClick="btNumber_Click" runat="server"
				width="35" />

</p>
		</td>
		<td width="32">
			<asp:Button ID="bt3" Text="3"
				OnClick="btNumber_Click" runat="server"
				width="35" />

</p>
		</td>
		<td width="32">
			<asp:Button ID="btSubtract" Text="-"
				OnClick="btOperator_Click" runat="server"
				width="35" />

</p>
		</td>
		<td width="32">
			<asp:Button ID="btOneOver" Text="1/x"
				OnClick="btSpecOperator_Click" runat="server"
				width="35" />

</p>
		</td>
	</tr>
	<tr>
		<td width="32" valign="top">
			<asp:Button ID="btMP" Text="M+"
				OnClick="btMemory_Click" runat="server"
				width="35" />
		</td>
		<td width="8"></td>
		<td width="32">
			<asp:Button ID="bt0" Text="0"
				OnClick="btNumber_Click" runat="server"
				width="35" />

</p>
		</td>
		<td width="32">
			<asp:Button ID="btNegate" Text="+/-"
				OnClick="btSpecOperator_Click" runat="server"
				width="35" />

</p>
		</td>		
		<td width="32">
			<asp:Button ID="btDot" Text="."
				OnClick="btNumber_Click" runat="server"
				width="35" />

</p>
		</td>
		<td width="32">
			<asp:Button ID="btAdd" Text="+"
				OnClick="btOperator_Click" runat="server"
				width="35" />

</p>
		</td>
		<td width="32">
			<asp:Button ID="btEqual" Text="="
				OnClick="btEqual_Click" runat="server"
				width="35" />

</p>
		</td>
	</tr>
	</table>
</asp:Panel>
<input type="hidden" id="hiddenvalue" value="" 
runat="server" >
<input type="hidden" id="hiddenoperator" value="" 
runat="server" >
ed il file l' ho chiamato Calculator.ascx


mentre il codice della pagina aspx che richiama il controllo è

codice:
<%@ Page Language="VB" %>
<%@ Register TagPrefix="TYASPNET" TagName="Calculator" Src="Calculator.ascx" %>
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252" />
<title>CALCOLATRICE</title>
</head>

<body>

<form runat="server">
<TYASPNET:Calculator id="Calc1"  runat="server" />
</form>

</body>

</html>
dove sta l' errore?