c# - Trim 方法不会清除所有空格

标签 c# winforms string trim

您好,我正在用 C# 开发一个基本的 Windows 窗体,我对 Trim() 方法有一点小问题。 用户输入他的名字、姓氏和 ID 时,有 3 个文本框。 然后他可以通过单击保存按钮来保存信息,但我想确保他不会留下空白框,所以我进行了以下测试:

        string CFN = Curator_FN.Text;
        string CLN = CURATOR_LN.Text;
        string CID = CURATOR_ID.Text;

        Curator_FN.Text.Trim();
        CURATOR_ID.Text.Trim();
        CURATOR_LN.Text.Trim();

        if (((Curator_FN.Text.Length == 0) || (CURATOR_ID.Text.Length == 0) || (CURATOR_LN.Text.Length == 0)))
        {
            MessageBox.Show("You Have to enter a First Name, a Last Name and an ID");
            Empty = true;
        }

问题是,如果我只是用空格键制作一些空格,Trim() 方法不会将它们视为空格。 也许我只是误解了 Trim() 方法,如果我误解了,您知道我该怎么做吗? 提前致谢。

最佳答案

Trim 方法不会修改文本框的内容,它只是返回 修剪后的版本。你需要存储这个版本,例如

Curator_FN.Text = Curator_FN.Text.Trim(); 

当然这有可能使更改对用户可见(并且它还必须访问 UI 线程,这在其他情况下可能是个问题),因此最好使用局部变量,如

var curatorFn = Curator_FN.Text.Trim(); 
// etc

if (curatorFn.Length == 0 || ... ) {
    // show messagebox
}

当然,如果这就是您需要做的全部,请使用 string.IsNullOrWhiteSpace可能是更方便的选择。

关于c# - Trim 方法不会清除所有空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8393862/

相关文章:

c# - 如何在 DevExpress XtraGrid 中获取点击的单元格列

c# - WinForm 底部边距属性不执行任何操作

c# - Gridview 行选择和编辑

使用 atoi/sprintf 将整数转换为字符串

c# - 为什么 Parallel.Foreach 会创建无限线程?

c# - 如何处理这种竞争条件?

c - 我怎样才能实现像程序这样的功能?

c# - 将单词转换为字符数组

c# - Xamarin studio IDE 连接联网 MAC?

c# - 将带有占位符 (`{0}` 的字符串添加到资源中是个好主意吗?