小白问个关于更改Label数据问题

cooclk2019 2019-04-25 03:52:19
刚开始接触的小白问下这个问题
自动创建的窗体 添加个Label控件并public 下面代码第一个数据改了 界面显示后第二个不变动

Form1 fm = new Form1();
fm.label1.Text = "sad哈撒给大会上将打火机撒谎";
Application.Run(fm);

fm.label1.Text = "ashdaskdhajsdhkjashdjsa";// 这个数据不显示
fm.label1.Refresh();
...全文
99 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
hztltgg 2019-04-25
  • 打赏
  • 举报
回复
引用 10 楼 cooclk2019 的回复:
[quote=引用 6 楼 hztltgg 的回复:] [quote=引用 5 楼 cooclk2019 的回复:] [quote=引用 2 楼 hztltgg 的回复:] Application.Run 后就进入消息循环了,下面的代码没执行到当然不会显示了。
麻烦问个问题 我想在界面显示之后 更改Label数值应该怎么做 [/quote] 在Form1这个窗体的各个事件里做呀,比如Form1_Load事件,这个winform开发的核心不就是写各个窗体各个控件的事件么。 这不是控制台程序,没有下一步下一步这种概念,都是通过事件来相互调用。[/quote] 可能我没说清楚 我意思是创建的窗体Application.Run之后更改数值 我试过在Form1中加入
 public void  change(string text)
        { this.label1.Text = text; }
在Main中调用
 Form1 fm = new Form1();
            fm.change("赛思结合");
            Application.Run(fm);

            fm.change("ashdaskdhajsdhkjashdjsa");//这个没变动
这和我一楼发的结果是一样的都是Application.Run之后就变动不了数值了 应该怎么做?[/quote] 创建的窗体Application.Run之后,你确定你理解这句话?初学者是还没有能理解Application.Run这句话的意思的。 你要明白你写的程序是事件驱动,你要做的是在不同事件里写代码,而不是控制具体什么时候做什么。比如你要在创建窗体以后改标签文字,那么在窗体的Form1_Load事件可以写代码,如果你要在创建窗体以后10秒钟修改标签文字,那么在窗体里加个定时器组件,定时10秒产生的事件里写,当然也可以按了键盘这个事件,按了鼠标这个事件等等等。。。
OrdinaryCoder 2019-04-25
  • 打赏
  • 举报
回复
引用 10 楼 cooclk2019 的回复:
[quote=引用 6 楼 hztltgg 的回复:]
[quote=引用 5 楼 cooclk2019 的回复:]
[quote=引用 2 楼 hztltgg 的回复:]
Application.Run 后就进入消息循环了,下面的代码没执行到当然不会显示了。

麻烦问个问题 我想在界面显示之后 更改Label数值应该怎么做 [/quote]

在Form1这个窗体的各个事件里做呀,比如Form1_Load事件,这个winform开发的核心不就是写各个窗体各个控件的事件么。

这不是控制台程序,没有下一步下一步这种概念,都是通过事件来相互调用。[/quote]


可能我没说清楚 我意思是创建的窗体Application.Run之后更改数值 我试过在Form1中加入
 public void  change(string text)
{ this.label1.Text = text; }


在Main中调用
 Form1 fm = new Form1();
fm.change("赛思结合");
Application.Run(fm);

fm.change("ashdaskdhajsdhkjashdjsa");//这个没变动
这和我一楼发的结果是一样的都是Application.Run之后就变动不了数值了 应该怎么做?[/quote]


引用 10 楼 cooclk2019 的回复:
[quote=引用 6 楼 hztltgg 的回复:]
[quote=引用 5 楼 cooclk2019 的回复:]
[quote=引用 2 楼 hztltgg 的回复:]
Application.Run 后就进入消息循环了,下面的代码没执行到当然不会显示了。

麻烦问个问题 我想在界面显示之后 更改Label数值应该怎么做 [/quote]

在Form1这个窗体的各个事件里做呀,比如Form1_Load事件,这个winform开发的核心不就是写各个窗体各个控件的事件么。

这不是控制台程序,没有下一步下一步这种概念,都是通过事件来相互调用。[/quote]


可能我没说清楚 我意思是创建的窗体Application.Run之后更改数值 我试过在Form1中加入
 public void  change(string text)
{ this.label1.Text = text; }


在Main中调用
 Form1 fm = new Form1();
fm.change("赛思结合");
Application.Run(fm);

fm.change("ashdaskdhajsdhkjashdjsa");//这个没变动
这和我一楼发的结果是一样的都是Application.Run之后就变动不了数值了 应该怎么做?[/quote]
Application.Run(fm);这句之后进程就进入fm的线程中了(消息循环?这块我也不太了解),
之后的代码只有在fm这个窗体关闭的时候才会执行,所以你在Application.Run(fm);之后任何对fm窗体操作的代码都是没有意义的
把修改的代码放到Form1这个类中 触发的话可以通过按钮事件等
起个名字忒难 2019-04-25
  • 打赏
  • 举报
回复
引用 4 楼 cooclk2019 的回复:
引用 1 楼 起个名字忒难 的回复:
你这个代码写在哪里,写在main方法里面吗?
嗯 是MAIN里面

那我比较纳闷了,你在main方法里面写的这个东西编译能通过吗?肯定通过不了吧
需要在窗体里面编写代码
cooclk2019 2019-04-25
  • 打赏
  • 举报
回复
引用 6 楼 hztltgg 的回复:
[quote=引用 5 楼 cooclk2019 的回复:]
[quote=引用 2 楼 hztltgg 的回复:]
Application.Run 后就进入消息循环了,下面的代码没执行到当然不会显示了。

麻烦问个问题 我想在界面显示之后 更改Label数值应该怎么做 [/quote]

在Form1这个窗体的各个事件里做呀,比如Form1_Load事件,这个winform开发的核心不就是写各个窗体各个控件的事件么。

这不是控制台程序,没有下一步下一步这种概念,都是通过事件来相互调用。[/quote]


可能我没说清楚 我意思是创建的窗体Application.Run之后更改数值 我试过在Form1中加入
 public void  change(string text)
{ this.label1.Text = text; }


在Main中调用
 Form1 fm = new Form1();
fm.change("赛思结合");
Application.Run(fm);

fm.change("ashdaskdhajsdhkjashdjsa");//这个没变动
这和我一楼发的结果是一样的都是Application.Run之后就变动不了数值了 应该怎么做?
OrdinaryCoder 2019-04-25
  • 打赏
  • 举报
回复

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

private void button1_Click(object sender, EventArgs e)
{
this.label1.Text = "123456";
}
}
OrdinaryCoder 2019-04-25
  • 打赏
  • 举报
回复
引用 5 楼 cooclk2019 的回复:
[quote=引用 2 楼 hztltgg 的回复:]
Application.Run 后就进入消息循环了,下面的代码没执行到当然不会显示了。

麻烦问个问题 我想在界面显示之后 更改Label数值应该怎么做 [/quote]
把改lable数值的代码放到Form1里 通过按钮事件等触发
hztltgg 2019-04-25
  • 打赏
  • 举报
回复
你不用去改动Program.cs这个文件,关注自己Form1.cs和其他你自己新建的窗体,那那个Form1.cs里写你的代码
hztltgg 2019-04-25
  • 打赏
  • 举报
回复
引用 5 楼 cooclk2019 的回复:
[quote=引用 2 楼 hztltgg 的回复:] Application.Run 后就进入消息循环了,下面的代码没执行到当然不会显示了。
麻烦问个问题 我想在界面显示之后 更改Label数值应该怎么做 [/quote] 在Form1这个窗体的各个事件里做呀,比如Form1_Load事件,这个winform开发的核心不就是写各个窗体各个控件的事件么。 这不是控制台程序,没有下一步下一步这种概念,都是通过事件来相互调用。
cooclk2019 2019-04-25
  • 打赏
  • 举报
回复
引用 2 楼 hztltgg 的回复:
Application.Run 后就进入消息循环了,下面的代码没执行到当然不会显示了。

麻烦问个问题 我想在界面显示之后 更改Label数值应该怎么做
cooclk2019 2019-04-25
  • 打赏
  • 举报
回复
引用 1 楼 起个名字忒难 的回复:
你这个代码写在哪里,写在main方法里面吗?
嗯 是MAIN里面
hztltgg 2019-04-25
  • 打赏
  • 举报
回复
你接触的是什么书?初学者在main写代码有点不太合适,别被书带歪了。
hztltgg 2019-04-25
  • 打赏
  • 举报
回复
Application.Run 后就进入消息循环了,下面的代码没执行到当然不会显示了。
起个名字忒难 2019-04-25
  • 打赏
  • 举报
回复
你这个代码写在哪里,写在main方法里面吗?

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧