我的软件中有一个表单正在显示总值(它是label
),我想在另一表单上显示该label
的值。
这是我的代码:
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();
}
}
在另一种形式上,我创建了这个:
private void Change_Load(object sender, EventArgs e)
{
Prodazba prodaz = new Prodazba();
label4.Text = prodaz.lblTotal.Text();
}
我得到的错误是: CS0122'Prodazba.lblTotal'由于其保护级别而无法访问
答案 0 :(得分:1)
以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;
}
答案 1 :(得分:0)
两件事:
to()
第二个更容易处理。在表单编辑器或设计器代码中,将访问级别设置为new Prodazba()
或internal
。
对于第一个,您可以根据创建表单的方式采取几种方法。如果您的第一个表单加载了Prodazba,则可以:
public
然后...
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();
}