已有一个类文件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调试的
请问C#如何在一个类中设置FORM1的label的TEXT值
答案:4 悬赏:80 手机版
解决时间 2021-01-29 07:43
- 提问者网友:龅牙恐龙妹
- 2021-01-28 07:37
最佳答案
- 五星知识达人网友:持酒劝斜阳
- 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
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里的类是同一个了
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯