c# - 带有文本框选择更改事件的“输入字符串格式不正确”
问题描述
private void txtdiscount_SelectionChanged(object sender, RoutedEventArgs e)
{
try
{
string dis = txtdiscount.Text.ToString();
double isid = double.Parse(dis);
isid = isid + 10;
MessageBox.Show(isid.ToString());
}
catch (Exception exp)
{
MessageBox.Show(exp.ToString());
}
}
我想在文本框中输入(双精度类型),txtdiscount
并且在文本框的SelectionChanged
事件中,aMessageBox
应该在其值增加 10 后显示输入的值。但是使用上面的代码,我得到一个例外:
“输入字符串格式不正确”
在线:
string dis = txtdiscount.Text.ToString()
文本框事件中的此代码有什么问题,SelectionChanged
因为在按钮单击事件中执行相同的代码时可以正常工作?
<TextBox x:Name="txtdiscount" HorizontalAlignment="Left" Height="33" Margin="831,97,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="154" SelectionChanged="txtdiscount_SelectionChanged"/>
解决方案
使用
Double.TryParse()
& 而不是SelectionChanged
使用TextChanged
事件。根据 MSDN
SelectionChanged :- 只要选择发生更改,就会发生此事件。不仅可以通过用户交互,还可以通过绑定以及其他设置值来更改选择。
TextChanged :- 如果通过编程修改或用户交互更改了 Text 属性,则会引发此事件。
string dis = txtBox.Text;
double isId;
if (Double.TryParse(dis, out isId))
{
isId = isId + 10;
MessageBox.Show(isId.ToString());
}
else
{
MessageBox.Show("Please Only enter Number");
}
推荐阅读
- url - 用于锚标记链接的 IIS 出站规则 URL 重写方案
- node.js - 在远程服务器上运行 node.js/express 应用程序供其他人访问?
- python - Python Quart/Hypercorn 流式响应导致 net::ERR_HTTP2_PROTOCOL_ERROR 200
- python - 如何在python中转换数据框列?
- vue.js - NGINX Config File for Microservice Subfolder Architecture
- coldfusion - 在生产上将 cfimage 写为 base64 时出错,但在开发服务器上却没有
- android - 移动标记时谷歌地图显示两个标记
- c# - EF Core 3.1 OwnersOne 所需属性为空
- python - Python jose.jwt.decode 在 rs256 算法上失败
- azure - 基于 SourcePath 创建一个新变量