永发信息网

请问C#如何在一个类中设置FORM1的label的TEXT值

答案:4  悬赏:80  手机版
解决时间 2021-01-29 07:43
  • 提问者网友:龅牙恐龙妹
  • 2021-01-28 07:37
已有一个类文件class1.cs,类名为class1
请问如何在类class1中设置FORM1的label的TEXT值?

我已经在类class1中试过用Invoke,但有出错提示“NetworkWell.class1”并不包含“Invoke”的定义
还是一点就是我是在FORM1中开了一个线程来处理的,所以不能直接this.Form1.labelname.Text = "fsdafd";
三楼的方法我也试过了,就是不行,我在类class1写上Form1 onloadform = new Form1();onloadform.settext("fdsafd");但Form1.labelname.Text没有改变
三楼你的方法在.net2是不能这样做的,要修改委托可以的,还有一点,就是新建的线程执行的方法(你这里就是Worker)是不在类Form1里的

因为代码太多,大家可以通过这个链接下载来看看http://www.ikbao.com/down/NetworkWell.rar

还是出现错误:“线程间操作无效: 从不是创建控件“OnlineUserNum”的线程访问它。”

我是用VS2005调试的
最佳答案
  • 五星知识达人网友:持酒劝斜阳
  • 2021-01-28 08:23
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;

namespace NetworkWell
{
class test
{
private Label label;

public void setLabel(ref Label label)
{
this.label = label;
}

public void testThread()
{
this.label.Text = "adsfwdwfsadf";
}

}
}

然后在Form1里
private void FrmMain_Load(object sender, EventArgs e)
{
test t = new test();
t.setLabel(ref this.OnlineUserNum);
Thread OnlineUserThread = new Thread(new ThreadStart(t.testThread));
OnlineUserThread.Start();

}

晕,你加我QQ:35147512
全部回答
  • 1楼网友:逃夭
  • 2021-01-28 11:36
应该有很多种方法 比如: 建立一个第三方公共类 namespace test //1.命名空间我随意写的,按你的项目命名来就行了 { class formhelper //同上1 { public static string textboxof = ""; //用于接收textbox 的值 } } 然后,在form2里面直接用 类点.属性对第三方公共类里的属性赋值: formhelper.textboxof = txtname.text; //form2里你想传的textbox的名称我设定为txtname了。你想传的应该是textbox的文本吧?反正按你想要的改就是。 最后,在form1的lable里调用: lblname.text = formhelper.textboxof; //lblname是我随意设定的名称。 另外一种,可以直接在form1 里面写一个公共变量: public string textboxof; 然后在form2里面实例一个对form1对象,再赋值: form1 newform1 = new from1(); //实例 newform1.textboxof= txtname.text; //传递值 最后在form1 里直接用就可以了: lblname.text = textboxof;
  • 2楼网友:夜风逐马
  • 2021-01-28 10:04
把label的访问权限修改成public然后直接用Form1.label.Text来访问. 在Form1的构造函数中加入下面这句就没有问题了: Control.CheckForIllegalCrossThreadCalls = false;
  • 3楼网友:神的生死簿
  • 2021-01-28 09:57
已有一个类文件class1.cs,类名为class1 请问如何在类class1中设置FORM1的label的TEXT值? class1.cs加个构造函数 System.Windows.Form.Lable myLable=null; public class1(ref System.Windows.Form.Lable Lable) { myLable=Lable; } 然后设置myLable的text就可以改变FROM上的值 意思按地址把这个lable传递到这个类里。这样类里的lable与FROM里的类是同一个了
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯