C#点击按钮定时器1秒一刷新,textbox的值怎么不变呀?

[复制链接]
查看11 | 回复10 | 2021-1-27 06:54:48 | 显示全部楼层 |阅读模式
点击按钮,会出来10textbox,但是怎么不刷新呢?
程序如下:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Threading.Tasks;
usingSystem.Windows.Forms;
namespaceWindowsFormsApplication1
{
publicpartialclassForm1:Form
{


classTex:TextBox
{
intx;
publicTex(intin_x)
{
x=in_x;
}

}
Tex[]Texts;
voidcaiji()
{
//Controls.Clear();

intshang=100;

intx=50;
inty=50;

Texts=newTex[10];
Randomrd=newRandom();
for(inti=0;i -->
回复

使用道具 举报

千问 | 2021-1-27 06:54:48 | 显示全部楼层
1、把触发周期改成10秒,看有木有效果?
2、如果有效果,就说明触发周期太短,文本框的值变化太快(以至于肉眼无法辨识,误认为没有变化)
或者
1、把这行代码newText.Text=Convert.ToString(rd.Next(100,200));
改成newText.Text=i.ToString();
排除你点子背,每次触发Random出来的随机数都是相同的(这个可能性不大)
回复

使用道具 举报

千问 | 2021-1-27 06:54:48 | 显示全部楼层
你在添加新的Textbox的时候并没有清除之前的Textbox所以x坐标不断向后延伸远远超出了Form的可视范围所以你看起来Textbox并没有变化
回复

使用道具 举报

千问 | 2021-1-27 06:54:48 | 显示全部楼层
按照第一个的没有效果呢,我也觉得是第二个说的有道理,那怎么清空的呀?
回复

使用道具 举报

千问 | 2021-1-27 06:54:48 | 显示全部楼层
那我应该怎么改呀
回复

使用道具 举报

千问 | 2021-1-27 06:54:48 | 显示全部楼层
引用3楼hhm790629472的回复:按照第一个的没有效果呢,我也觉得是第二个说的有道理,那怎么清空的呀?
caiji()
这个方法的第一行加
newText.Text=“”;
不就行啦?
回复

使用道具 举报

千问 | 2021-1-27 06:54:48 | 显示全部楼层
每次执行caiji时,你的10个Tex控件的location都是一样的。在上一次循环添加的那个Tex下面。
1.执行caiji时,清除原来生成的Tex控件。this,Controls.oftype().tolist().foreach(item=>{this.controls.remove(item);});
2.找到上一次的tex控件直接赋值。
3.如果不想清除,使用newText.BringToFront();

回复

使用道具 举报

千问 | 2021-1-27 06:54:48 | 显示全部楼层
引用5楼qq_17486399的回复:Quote: 引用3楼hhm790629472的回复:
按照第一个的没有效果呢,我也觉得是第二个说的有道理,那怎么清空的呀?

caiji()
这个方法的第一行加
newText.Text=“”;
不就行啦?

newText是在for循环里面定义的,放到外面出错误啊?
回复

使用道具 举报

千问 | 2021-1-27 06:54:48 | 显示全部楼层
newText.Location=newPoint(100+shang*i,100);
你这个i应该作为全局参数,不然你每次都生成了,但与之前的重叠了
回复

使用道具 举报

千问 | 2021-1-27 06:54:48 | 显示全部楼层
for(inti=0;i
改成
for(intj=0;j
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行