使用以下代码,我在 TextBox 中逐行删除(0, 39)。现在在最后一个地方有一个金额(1 any Articel 10.00),我想从总金额中扣除。为此,我使用Substring. 但是我得到了错误,因为可能没有解释空格。有没有简单的解决方案?谢谢private void btnDelete_Click(object sender, EventArgs e){ if (TextBox1.Text.Length > 0) { txtTotal.Text = (Double.Parse(txtTotal.Text) - Double.Parse(TextBox1.Text.Substring(8, 2))).ToString("0.00"); TextBox1.Text = TextBox1.Text.Remove(0, 39); } if (TextBox1.Text.Length == 0) { MessageBox.Show("The cart is empty");
1 回答
收到一只叮咚
TA贡献1821条经验 获得超4个赞
您可以做一些事情来让您的生活更轻松(假设您必须像其他人所说的那样保留一个 TextBox。)
然而,在我进入细节之前,问题似乎是您在解析表示数据行的文本时遇到问题,数据包含您想要采取行动的数量。如果这是一个不正确的假设,请忽略此答案。
好吧,回到它...
不要尝试直接在 TextBox 中处理文本,而是首先将整个字符串作为行列表(即
List<String>
)读取。您可以使用Split
函数或 RegEx 表达式来完成此操作。 看这里对每一行使用 RegEx 表达式不仅可以识别它的类型(“项目”行或底部的“全部”行)以及这些行的各个部分。例如,您可以使用从行尾开始向后查找数字(以字符串形式)的正则表达式。将其结果用于 Parse 方法以获取实际数值。
最后,如果您仍然需要删除文本行(我不确定您是为了逻辑删除文本还是需要显示它),只需将它们从行的字符串列表中删除。如果需要将其显示在 UI 中(令人怀疑,因为在处理结束时它似乎应该是空白的)只需用于Join
将行转换回字符串,然后将其设置回TextBox.Text
属性。
希望这可以帮助!
标记
PS为了(尝试和)避免诸如您对设计的评论之类的评论,通过说“不幸的是,由于此问题之外的问题,我只能使用TextBox,因此我”这样的话可能有助于开始您的问题我在这里寻找答案。至少这应该减少那些告诉你“以不同的方式做!”的回应。而不是回答你的问题。
- 1 回答
- 0 关注
- 176 浏览
添加回答
举报
0/150
提交
取消