C#输出到文本框

4
这可能听起来很愚蠢,但我正在学习C#课程,我们跳过了书中的许多章节,仅使用控制台应用程序进行操作。我们得到了一个练习,基于冠词、名词、动词和介词数组构建字符串句子,并将字符串第一个单词的首字母大写。关键是,它要求输出到一个文本框。这并不是问题所在,因为
a)我们绕过了所有有关GUI的章节(将在下一季度的C#课程中讲解),以及
b)我查看了书籍甚至Stack Overflow和其他在线资源,但无法解决它。
不幸的是,我的讲师选择不在昨晚的课堂上讨论这个练习。由于他和我不在同一页面上(不是不喜欢,更多的是化学反应的问题),我想自己解决这个问题。并且交作业期限已经过去了,所以我现在只是为了个人启示而问。
以下是我创建的代码。我编写它以输出到控制台,只是为了展示我理解了问题的基本机制。我知道我必须创建一个单独的窗体,在GUI窗口中放置一个文本框,但我无法弄清楚如何将输出发送到文本框而不是控制台。
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;

    namespace _16._4_StoryWriter
    {
       class StoryWriter
       {
          static void Main(string[] args)
          {
             string[] articles = { "the", "a", "one", "some", "any" };
             string[] nouns = { "boy", "girl", "dog", "town", "car" };
             string[] verbs = { "drove", "jumped", "ran", "walked", "skipped" };
             string[] preps = { "to", "from", "over", "under", "on" };

             string articleStory = "";
             string nounStory = "";
             string verbStory = "";
             string prepStory = "";

             Random random = new Random();


             for (int counter = 1; counter <= 10; ++counter)
             {
                int randomNext = random.Next(5);
                articleStory = articles[randomNext];


                randomNext = random.Next(5);
                nounStory = nouns[randomNext];

                randomNext = random.Next(5);
                verbStory = verbs[randomNext];

                randomNext = random.Next(5);
                prepStory = preps[randomNext];

                Console.WriteLine(UppercaseFirst(articleStory) + " " + nounStory + " " + verbStory + " " + prepStory + ".");
             } // End For

             Console.Read();
          } // End Main

          static string UppercaseFirst(string s) // Borrowed from dotnetperls.com tutorial for making first letter uppercase
          {
             if (string.IsNullOrEmpty(s)) // Checks for an empty string
             {
                return string.Empty;
             }
             char[] a = s.ToCharArray(); // Creates array of characters from a string
             a[0] = char.ToUpper(a[0]); // Selects value of zeroth position and changes to upper case
     return new string(a); // Passes new string back
          } // End method

       } // End Class
    } // End Namespace        

我认为我需要根据两个答案澄清我的问题。我知道如何创建表单应用程序以及如何向表单添加文本框。我的问题是,我应该把可执行代码放在哪里?Program.cs还是Form1.cs?我该如何“链接”这两个文件? - JBM
2个回答

4
要创建一个Windows Forms应用程序项目,请启动Visual Studio 2010。
在“文件”菜单上,指向“新建”,然后选择“项目”。
出现“新建项目”对话框。
在“已安装的模板”窗格中,展开Visual Basic或Visual C#,然后选择Windows。
在中间窗格上方,从下拉列表中选择目标框架。
在中间窗格中,选择Windows Forms应用程序模板。
注意:.NET Framework 4中的Windows Forms应用程序模板默认针对客户端配置文件。
在“名称”文本框中,指定项目名称。
在“位置”文本框中,指定要保存项目的文件夹。单击“确定”。
Windows Forms设计器将打开并显示该项目的Form1。
然后从工具箱中拖动文本框并将其放置在表单上。
在表单上除了文本框之外的任何地方双击,这将打开代码后台表单,并且您将处于表单加载事件中。
添加:

textBox1.Text = "在文本框中输入您的文本";

中:

private void Form1_Load(object sender, EventArgs e)
{
    textBox1.Text = "Your text to put in textbox";
}

按 F5 键

Youtube 表单 Youtube 文本框


我觉得我的问题表述不够清晰。我知道如何在Vis Studio 2015中创建一个表单并向该表单添加文本框。问题是,我应该把实际程序的代码放在哪里?是在program.cs还是Form1.cs中? - JBM

2
你只需要一个Form和一个作为Form子元素的TextBox:
var form = new Form{Width = 300, Height = 100, Text = "The form"};
var textbox = new TextBox{Parent=form, Size = form.ClientRectangle.Size, Multiline = true};

textbox.Text = "Your Text";

form.ShowDialog();

你还需要在某个地方使用 using System.Windows.Forms 并引用 System.Windows.Forms.dll

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接