c# - 如何在 Form1 上制作一个标签,从 form2 说 "Hello"?

标签 c#

就是这样。这是一个愚蠢(令人尴尬!)的问题,但我以前从未使用过 C#,只使用过 C++,而且我似乎无法弄清楚如何从辅助表单访问主表单上的标签并更改文本。如果有人能让我真正快速地知道该怎么做,我将不胜感激!

顺便说一句,我真的应该澄清一下。抱歉:我有两个单独的 .cs 文件,每个文件如下所示。我在 VS2008 中使用 [Designer] 在 Form1 中添加标签。当我输入类似 Form1.label1 的内容时,它无法理解。下拉列表显示了 Form1 的方法和属性列表,但只有大约 7 个,例如 ControlCollection、Equals、MouseButtons 和其他几个...我可以在 Form1 中公开定义一个变量并显示,但我不知道如何访问标签...

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

最佳答案

您需要引用 Form1 的实例 - 例如,如果 Form1 正在构造 Form2,您可以将 this 作为构造函数参数传入。

然后您需要通过一个属性(或者 - ick! - 一个非私有(private)字段)公开 Form1 的标签,或者编写一个方法/属性来设置标签的文本。例如:

public class Form1 : Form 
{
    private Label label;

    // Construction etc as normal

    public string LabelText
    {
         get { return label.Text; }
         set { label.Text = value; }
    }

    public Form2 CreateForm2()
    {
        return new Form2(this);
    }
}

public class Form2 : Form
{
    private Form1 form1;

    public Form2(Form1 form1)
    {
        this.form1 = form1;
        // Normal construction
    }

    public void SayHello()
    {
        form1.LabelText = "Hello";
    }
}

关于c# - 如何在 Form1 上制作一个标签,从 form2 说 "Hello"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/265849/

相关文章:

c# - 如何开始使用 SitecoreFakeDb 进行 Sitecore 单元测试

具有动态表名的 C# 查询

c# - 尝试使用 File.Move 移动文件时出现 FileNotFound 异常

c# - 为什么 Visual Studio 将新创建的数组键入为可空?

c# - 'Full_Name' 附近的语法不正确

c# - 如何将某些对象转换为 T 的父类的泛型类?

c# - 对象引用未设置到对象的实例。为什么 .NET 不显示哪个对象是 `null`?

c# - 需要澄清类关系的一些概念。编程新手

c# - 我什么时候应该将 HttpResponse.SuppressContent 设置为 true

c# - Mono 是用什么语言编写的?如何阅读源代码?