-1

我试图为我几天前遇到的问题找到一个通用的解决方案。基本上,除了在我们的 winforms UI 中输入值之外,用户还尝试从一些报告(在 html 和 excel 中)粘贴数据并尝试搜索信息。

显然,这不起作用,因为我们的 WCF 服务不理解字符串的编码格式并且不返回任何记录。这对用户来说是令人惊讶的,因为当他们键入相同的字符串并搜索它时,他们可以获得结果。此处讨论的问题:字符串编码问题 - 需要将“西欧转换为 Ascii”

但是,我知道这可能发生在我们应用程序的任何 UI 屏幕中,因此需要知道什么是通用的,并且是实现解决方案的一个地方。是否可以使表单中的所有控件删除任何编码?或者可能是确保服务可以忽略字符串中的任何特殊编码的任何方式?或者除了从 UI 中的每个输入文本框中重新格式化文本之外没有其他选择?

谢谢。

4

2 回答 2

1

表单是具有容器和子容器树的容器控件。您可以沿着控件树向下走,直到找到要在表单加载时更改编码的标签/文本框。

您还可以将此作为 WCF 服务的行为来实现(以便它自动处理编码)。

于 2012-10-11T14:01:18.607 回答
0

我认为您最好创建自定义文本框。从 TextBox 类继承并覆盖它的 Text 属性获取器并在那里调用您的重新格式化方法。

在您的解决方案中搜索所有文本框并用新的自定义文本框替换它们并不难。

于 2012-10-13T09:52:45.180 回答