如何在文本框中创建一个单词结束程序?

时间:2016-06-22 13:44:57

标签: c# string exit

因此,我必须创建的表单之一是输入名字和姓氏,然后将两个名称分开并将它们放在相应的标签旁边,表单设计:https://gyazo.com/9b34dca0c1cd464fd865830390fcb743但是当单词停止时以任何方式输入,例如停止,StOp,sToP等它需要结束。

        private void btnSeparate_Click(object sender, EventArgs e)
    {
        string strfullname, strgivenname, strfamilyname, strfirstname;
        int int_space_location_one, int_space_location_two;

        strfullname = txtFullName.Text;


        int_space_location_one = strfullname.IndexOf(" ");
        strgivenname = strfullname.Substring(0, int_space_location_one);


        lblGivenEntered.Text = strgivenname;


        strfirstname = strfullname.Remove(0, int_space_location_one + 1);
        int_space_location_two = strfirstname.IndexOf(" ");


        strfamilyname = strfirstname.Substring(int_space_location_two + 1);
        lblFamilyEntered.Text = strfamilyname;
    }

这是我当前的代码,我尝试了很多不同的方法来使单词停止结束它但它不会工作因此这就是为什么目前没有代码试图停止程序,我得到的主要问题是因为它是在第一个和最后一个名字之间搜索一个空格,它显然没有一个单词只会崩溃。

任何对此的帮助都会让人感到惊讶,感谢提前。

2 个答案:

答案 0 :(得分:3)

挂上TextChanged事件并按照以下方式进行:

private void TextChanged(Object sender, EventArgs e)
{
    // If text, converted to lower-characters contains "stop" -> Exit
    if(txtFullName.Text.ToLower().Contains("stop"))
    {
        // What I understand as "stopping it".
        Application.Exit();
    }
}

IF “停止”你的意思是操作:

private void btnSeparate_Click(object sender, EventArgs e)
{
    // If text, converted to lower-characters contains "stop" -> Exit
    if (txtFullName.Text.ToLower().Contains("stop"))
    {
        // What I understand as "stopping it".
        Application.Exit();
    }
    else
    {
        // Your code inside the else block
    }
}

所有内容的简短版本: 同时涵盖no spaces问题

private void btnSeparate_Click(object sender, EventArgs e)
{
    // Save how many words are inside
    int wordsInText = txtFullName.Text.Split(' ').Length;
    // Save if "stop" was typed into the textbox
    bool stopExisting = !txtFullName.Text.ToLower().Contains("stop");

    // If text has exactly 3 words and "stop" is NOT existing
    if (wordsInText == 3 && !stopExisting)
    {
        // Save array of splitted parts
        string[] nameParts = txtFullName.Text.Split(' ');

        // This is never used??
        string strfirstname = nameParts[1];

        // Set name-parts to labels
        lblGivenEntered.Text = nameParts[0];
        lblFamilyEntered.Text = nameParts[2];
    }
    // If text has NOT exactly 3 words and "stop" is NOT existing
    else if(wordsInText != 3 && !stopExisting)
    {
        // If there are no 3 words, handle it here - MessageBox?
    }
    // If "stop" IS existing
    else if(stopExisting)
    {
        // If text contains "stop" handle it here
        // Application.Exit(); <-- if you really want to exit
    }
}

答案 1 :(得分:0)

如果其中一个输入的单词等于单词“stop”,您可以检查。在那里你需要一个忽略大小写的StringComparions。或者您可以将输入的单词解析为大写/小写。

因此,如果检查结果为真,您可以使用

结束程序

Environment.Exit(0);

如果其中一个输入的单词等于单词“stop”,您可以检查。在那里你需要一个忽略大小写的StringComparions。或者您可以将输入的单词解析为大写/小写。

因此,如果检查结果为真,您可以使用

结束程序

Environment.Exit(0);

代码:

if (strfullname.ToLowerInvariant().Contains("stop"))
{
    Environment.Exit(0);
}