【问题标题】:Issue outputting text to textBox (WinForms)将文本输出到文本框 (WinForms)
【发布时间】:2018-02-06 05:54:44
【问题描述】:

这是我第一次使用winforms。我有一些问题。

   public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void TextBox1_TextChanged(object sender, EventArgs e)
        {

        }

        private void Form1_Load(object sender, EventArgs e)
        {
            textBox1.Text = "FORM1";
            textBox1.AppendText("SOME TEXT");
        }
    }

我已经试过了。我的文本框设置为填充,因此它填满了整个表单。我将多行属性设置为 true 并将停靠属性设置为填充。

从我作为第一次 WinForms 用户可以尝试的情况来看,Form1_Load 应该在表单创建后立即运行。我尝试了各种打印文本的方法,但没有任何效果。我注意到视觉工作室在我的功能旁边说“0 引用”。我不确定这意味着什么,也许是我的问题的一部分?请帮忙。

【问题讨论】:

  • 有什么问题?在我的情况下,使用您的代码时文本框会正确填充。您想通过text changed 事件实现什么目标?
  • @MichałTurczyn 什么都没有发生。没有文本输出到我的文本框!我不明白。如果它对你有用,我可能会尝试重新创建项目。不知道那对我有什么好处。
  • 您的表单加载事件似乎没有注册。打开设计器,选择表单并转到属性窗口(Ctrl+W,P)。在这里选择事件,然后查找Load 事件。复制Form1_Load1并粘贴到事件名称旁边的框中
  • 听起来你只是输入了那个事件处理程序,但没有钩订阅Form1.Load 事件。在Form1() 构造函数中,尝试添加以下行:this.Load += Form1_Load;

标签: c# winforms textbox


【解决方案1】:

对方法的引用为 0 意味着它从未在代码中使用。所以你的问题是你定义了方法,看起来应该在表单加载事件上执行,但这只是定义。我建议你将方法的正文复制到剪贴板,进入表单的设计页面,在右侧,你可以浏览事件,该表单生成,找到Load事件,双击它,Visual Studio应该会生成代码使用空方法定义,粘贴您的代码。

当您右键单击您的方法名称并单击 Find all references 时,您应该会在底部看到类似这样的内容:

【讨论】:

  • 谢谢。不过我不明白,我自己在同一个文件中输入了完全相同的内容,我事先注释掉了我的函数以进行比较。然后我用了你的方法。它们实际上是相同的。然而,当我自己做时,我得到了 0 个参考,但是当我按照你的方式做时,我立即得到了参考。实际上,我只是花了一个小时试图弄清楚这一点,查看参考资料并看到我的代码看起来不错。无论如何,您可以解释为什么会这样吗?我的印象是您可以在 winforms 文件中手动编写任何代码,或者使用您的方法。
  • Visual Studio 会自动为您生成所有必需的代码。当您手动输入您的方法时,您很可能忘记将其添加到您的事件处理程序中:this.Load += new System.EventHandler... 在我附上的图片上。
【解决方案2】:

您是否检查过属性中已完成以下操作:

转到 Form1->Properties 窗口并检查事件。 现在检查 Load 事件,它应该附加到您的 Form1_Load 方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-23
    • 1970-01-01
    相关资源
    最近更新 更多