Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/299.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#,我的软件中有一个窗体显示总值(它是一个标签),我想在另一个窗体上显示该标签的值 这是我的密码: public void PresmetajTotal() { for (var i = 0; i < dataGridView1.Rows.Count; i++) { vkp += Convert.ToInt64(dataGridView1.Rows[i].Cells[4].Value); lblTotal.Text = vkp.ToSt

我的软件中有一个窗体显示总值(它是一个
标签
),我想在另一个窗体上显示该
标签
的值

这是我的密码:

public void PresmetajTotal()
{   
    for (var i = 0; i < dataGridView1.Rows.Count; i++)
    {
        vkp += Convert.ToInt64(dataGridView1.Rows[i].Cells[4].Value);

         lblTotal.Text = vkp.ToString();
    }
}
我得到的错误是:
CS0122“Prodazba.lblTotal”由于其保护级别而不可访问

Prodazba
表单中添加一个公共属性,该属性将返回标签的值

public partial class Prodazba()
{
    public string Total { get { return lblTotal.Text; } }

    //....
}
然后像这样访问它:

private void Change_Load(object sender, EventArgs e)
{
    Prodazba prodaz = new Prodazba();
    label4.Text = prodaz.Total;
}
两件事:

  • 您正在使用
    new Prodazba()
  • 你的标签是私人的
  • 第二个更容易处理。在表单编辑器或设计器代码中,将访问级别设置为
    internal
    public

    对于第一种方法,您可以根据表单的创建方式采取多种方法。如果您的第一个表单加载了Prodazba,您可以:

    public partial class YourMainForm
    {
        Prodazba prodaz;
    
    然后

    private void Change_Load(object sender, EventArgs e)
    {
        prodaz = new Prodazba();
        prodaz.Load += delegate {this.label4.Text = prodaz.Total};
        prodaz.Show();
    }
    

    如果标签是内部可访问的,则可以从中运行任何事件处理程序,如
    prodaz.label4.TextChanged+=…

    我可以查看Prodazba类的构造函数吗?何时在Prodzaba表单上设置标签的值?
    private void Change_Load(object sender, EventArgs e)
    {
        prodaz = new Prodazba();
        prodaz.Load += delegate {this.label4.Text = prodaz.Total};
        prodaz.Show();
    }