Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 制作文本框大写字母的第一个字母_C# - Fatal编程技术网

C# 制作文本框大写字母的第一个字母

C# 制作文本框大写字母的第一个字母,c#,C#,我的代码有问题。我希望它使文本框的第一个字母大写,但是如果文本框为空,程序就会崩溃。我知道问题与子字符串的长度有关,所以如果有人能帮我解决这个问题,那就太好了! 注意:文本框的名称是richTextBoxGuess,每次文本框中的文本更改时,此代码都会运行 if (char.IsLower(Convert.ToChar(richTextBoxGuess.Text.Substring(0, 1))) ) // Checks if first letter is lower case { r

我的代码有问题。我希望它使文本框的第一个字母大写,但是如果文本框为空,程序就会崩溃。我知道问题与子字符串的长度有关,所以如果有人能帮我解决这个问题,那就太好了! 注意:文本框的名称是richTextBoxGuess,每次文本框中的文本更改时,此代码都会运行

if (char.IsLower(Convert.ToChar(richTextBoxGuess.Text.Substring(0, 1))) ) // Checks if first letter is lower case
{
    richTextBoxGuess.Text = richTextBoxGuess.Text.Replace(richTextBoxGuess.Text.Substring(0, 1), richTextBoxGuess.Text.ToUpper()); // Changes first letter to uppercase
    richTextBoxGuess.SelectionStart = 2; // Puts cursor after first letter
}

编写此扩展方法:

public static string CapitalizeFirstLetter(this string input)
{
    if (string.IsNullOrEmpty(input))
    {
        return input;
    }

    return input.Substring(0, 1).ToUpper(CultureInfo.CurrentCulture) + input.Substring(1);
}
然后将其用作

richTextBoxGuess.Text = richTextBoxGuess.Text.CapitalizeFirstLetter();

编写此扩展方法:

public static string CapitalizeFirstLetter(this string input)
{
    if (string.IsNullOrEmpty(input))
    {
        return input;
    }

    return input.Substring(0, 1).ToUpper(CultureInfo.CurrentCulture) + input.Substring(1);
}
然后将其用作

richTextBoxGuess.Text = richTextBoxGuess.Text.CapitalizeFirstLetter();

检查richTextBoxGuess是否为null或空

if( richTextBoxGuess != ""){ // or different from null
     if (char.IsLower(Convert.ToChar(richTextBoxGuess.Text.Substring(0, 1))) ){
             //your code
     }
}

检查richTextBoxGuess是否为null或空

if( richTextBoxGuess != ""){ // or different from null
     if (char.IsLower(Convert.ToChar(richTextBoxGuess.Text.Substring(0, 1))) ){
             //your code
     }
}

这不会破坏内容以前的格式:

private void richTextBoxGuess _TextChanged(object sender, EventArgs e)
{
    if (richTextBoxGuess .Text.Length <= 0) return;
    string s = richTextBoxGuess.Text.Substring(0, 1);
    if (s != s.ToUpper())
    {
        int curSelStart = richTextBoxGuess.SelectionStart;
        int curSelLength = richTextBoxGuess.SelectionLength;
        richTextBoxGuess.SelectionStart = 0;
        richTextBoxGuess.SelectionLength = 1;
        richTextBoxGuess.SelectedText = s.ToUpper();
        richTextBoxGuess.SelectionStart = curSelStart;
        richTextBoxGuess.SelectionLength = curSelLength;
    }
}
private void richTextBoxGuess\u TextChanged(对象发送方,事件参数e)
{

如果(richTextBoxGuess.Text.Length,则不会破坏内容的先前格式:

private void richTextBoxGuess _TextChanged(object sender, EventArgs e)
{
    if (richTextBoxGuess .Text.Length <= 0) return;
    string s = richTextBoxGuess.Text.Substring(0, 1);
    if (s != s.ToUpper())
    {
        int curSelStart = richTextBoxGuess.SelectionStart;
        int curSelLength = richTextBoxGuess.SelectionLength;
        richTextBoxGuess.SelectionStart = 0;
        richTextBoxGuess.SelectionLength = 1;
        richTextBoxGuess.SelectedText = s.ToUpper();
        richTextBoxGuess.SelectionStart = curSelStart;
        richTextBoxGuess.SelectionLength = curSelLength;
    }
}
private void richTextBoxGuess\u TextChanged(对象发送方,事件参数e)
{
if(richTextBoxGuess.Text.Length)
如果你想把每个词都大写

char _pre,_cur;
_pre=' ';
 private void _capitalizeEveryWord(Object sender, KeyPressEventArgs e)
        {
           _cur = e.KeyChar;
           if (_richTB.Text.Trim() == String.Empty)
            {
                e.KeyChar = char.ToUpper(e.KeyChar);
            }
            e.Handled = !(char.IsLetter(e.KeyChar) || e.KeyChar == (char)Keys.Back || e.KeyChar == ' ' && (!(_cur == _pre)) || e.KeyChar == '.' &&                  (!(_pre == _cur)));
            _pre=_cur

        }
如果你想把每个词都大写

char _pre,_cur;
_pre=' ';
 private void _capitalizeEveryWord(Object sender, KeyPressEventArgs e)
        {
           _cur = e.KeyChar;
           if (_richTB.Text.Trim() == String.Empty)
            {
                e.KeyChar = char.ToUpper(e.KeyChar);
            }
            e.Handled = !(char.IsLetter(e.KeyChar) || e.KeyChar == (char)Keys.Back || e.KeyChar == ' ' && (!(_cur == _pre)) || e.KeyChar == '.' &&                  (!(_pre == _cur)));
            _pre=_cur

        }

只需先检查文本框是否为空。
if(richTextBoxGuess.text!=“”&&&…
可能是重复的哦,谢谢,这很有效。我对C#很陌生,所以我觉得有点愚蠢,因为这很明显!请注意,更改RTB的文本属性会破坏其格式!如果您使用的是
TextBox
您不应该称它为
richTextBoxGuess
,如果您使用的是
RichTextBox
你不应该一直把它说成是一个
TextBox
!只需先检查这个文本框是否为空。
if(richTextBoxGuess.text!=“”&&&…
可能是重复的哦,谢谢,这很有效。我对C#很陌生,所以我觉得有点愚蠢,因为这很明显!请注意,更改RTB的文本属性会破坏其格式!如果您使用的是
TextBox
您不应该称它为
richTextBoxGuess
,如果您使用的是
RichTextBox
你不应该一直把它说成是一个
文本框
!仅供参考,第二个
子字符串
可以使用只获取起始索引并到达字符串末尾的重载。请注意,更改RTB的Text属性将破坏其格式!仅供参考,第二个
子字符串
可以使用只获取启动索引并转到字符串的结尾。请注意,更改RTB的文本属性将破坏其格式设置!请注意,更改RTB的文本属性将破坏其格式设置!请注意,更改RTB的文本属性将破坏其格式设置!