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

问题描述

点击按钮,会出来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<10;i++){//创建textTexnewText=newTex(i);//newText.Clear();//newText.Text=Convert.ToString(++m);newText.Text=Convert.ToString(rd.Next(100,200));//foreach(TexTexinTexts)//{//}//设定text的位置newText.Location=newPoint(100+shang*i,100);//设定text大小newText.Size=newSize(x,y);//newText.BackColor=Color.LightGray;//将新按钮添加到窗体this.Controls.Add(newText);//继承//添加到数组//Texts[i]=newText;//不仅要添加到窗体,也要添加到数}}publicForm1(){InitializeComponent();}privatevoidbutton1_Click(objectsender,EventArgse){timer1.Enabled=true;timer1.Interval=1000;}privatevoidtimer1_Tick(objectsender,EventArgse){caiji();}}}

解决方案

解决方案二:
1、把触发周期改成10秒,看有木有效果?2、如果有效果,就说明触发周期太短,文本框的值变化太快(以至于肉眼无法辨识,误认为没有变化)或者1、把这行代码newText.Text=Convert.ToString(rd.Next(100,200));

改成newText.Text=i.ToString();

排除你点子背,每次触发Random出来的随机数都是相同的(这个可能性不大)
解决方案三:
你在添加新的Textbox的时候并没有清除之前的Textbox所以x坐标不断向后延伸远远超出了Form的可视范围所以你看起来Textbox并没有变化
解决方案四:
按照第一个的没有效果呢,我也觉得是第二个说的有道理,那怎么清空的呀?
解决方案五:
那我应该怎么改呀
解决方案六:
引用3楼hhm790629472的回复:

按照第一个的没有效果呢,我也觉得是第二个说的有道理,那怎么清空的呀?

caiji()这个方法的第一行加newText.Text=“”;不就行啦?
解决方案七:
每次执行caiji时,你的10个Tex控件的location都是一样的。在上一次循环添加的那个Tex下面。1.执行caiji时,清除原来生成的Tex控件。this,Controls.oftype<tex>().tolist().foreach(item=>{this.controls.remove(item);});2.找到上一次的tex控件直接赋值。3.如果不想清除,使用newText.BringToFront();
解决方案八:
引用5楼qq_17486399的回复:

Quote: 引用3楼hhm790629472的回复:
按照第一个的没有效果呢,我也觉得是第二个说的有道理,那怎么清空的呀?

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

newText是在for循环里面定义的,放到外面出错误啊?
解决方案九:
newText.Location=newPoint(100+shang*i,100);

你这个i应该作为全局参数,不然你每次都生成了,但与之前的重叠了
解决方案十:
for(inti=0;i<10;i++)

改成for(intj=0;j<10;j++){i+=j;

解决方案十一:
当然全局的inti=0;

定义在方法外面知道的吧
解决方案十二:
引用6楼yyantifa的回复:

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

还是不行,为什么我用newtext.clear没用呢
解决方案十三:
publicForm1(){InitializeComponent();this.timer1.Enabled=true;//设置timer控件的Tick事件触发的时间间隔this.timer1.Interval=1;//停止计时this.timer1.Stop();}intcounts=0;privatevoidtimer1_Tick(objectsender,EventArgse){count+=1;this.tbTimer.Text=count.ToString();}privatevoidbutton3_Click(objectsender,EventArgse){this.timer1.Start();}
解决方案十四:
从新谢了一遍代码,还是不行,调试的时候,定时器每1秒触发一次后,数值是改变的,只是不知道newtext为什么没有变化,并且我用newtext.Controls.Clear();清空了呀!谢谢大家!usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingSystem.Windows.Forms;namespacecaiji{publicpartialclassForm1:Form{publicForm1(){InitializeComponent();}privatevoidbutton1_Click(objectsender,EventArgse){timer1.Enabled=true;timer1.Interval=1000;this.timer1.Start();}privatevoidtimer1_Tick(objectsender,EventArgse){caiji();//this.tbTimer.Text=count.ToString();}classtex:TextBox{publictex(intin_x)//方法{}}tex[]texts;voidcaiji(){//Controls.Clear();intshang=100;intx=50;inty=50;texts=newtex[10];Randomrd=newRandom();for(inti=0;i<10;i++){texnewtext=newtex(i);newtext.Controls.Clear();newtext.Location=newPoint(100+shang*i,100);newtext.Size=newSize(x,y);this.Controls.Add(newtext);newtext.Text=Convert.ToString(rd.Next(100,200));}}//值是变化着,只是没有写进来}}
解决方案十五:
引用12楼wsh_mar的回复:

publicForm1(){InitializeComponent();this.timer1.Enabled=true;//设置timer控件的Tick事件触发的时间间隔this.timer1.Interval=1;//停止计时this.timer1.Stop();}intcounts=0;privatevoidtimer1_Tick(objectsender,EventArgse){count+=1;this.tbTimer.Text=count.ToString();}privatevoidbutton3_Click(objectsender,EventArgse){this.timer1.Start();}

不懂啊
解决方案:
引用10楼starfd的回复:

当然全局的inti=0;

定义在方法外面知道的吧

定义了,还是不行呢

时间: 2024-09-20 00:46:53

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

c#-C#点击按钮改变类的成员变量的值

问题描述 C#点击按钮改变类的成员变量的值 我在类里面定义了一个成员变量n,想用点击按钮来改变它的值,在按钮方法里面实现了,但是再在其他方法里面将n赋给其他变量的时候却不能实现. 解决方案 肯定也是可以实现的 比如 public void Foo(int a){ this.n=a; } 你调用这个方法不可能n的值不变吧? 解决方案二: 估计是你的对象是私有的,或者你在其它方法访问的时候又创建了一个.你可以把对象定义成static形式看看. 解决方案三: 总之就是 xxxx.n = xxx 解决方

论谈-点击按钮复制内容粘贴到指定位置

问题描述 点击按钮复制内容粘贴到指定位置 如何点击接钮复制指定单元格输入的内容并粘贴到下一行空格处,新手求详解! 解决方案 点击按钮复制文本框内容点击按钮后实现复制,复制TextBox里面的内容 解决方案二: 直接点击单元格,右键复制 解决方案三: html?什么语言?html用js cloneNode,然后指定的dom对象appendChild添加刚才克隆的对象 解决方案四: 是.net里,怎么才能实现呢

如何点击按钮弹出新窗口,输入数据后返回并刷新页面?

按钮|数据|刷新|页面 在一些.NET论坛中有人经常会问:如何在页面中点击按钮打开新页面,输入数据,然后返回到初始页面并进行更新?要解决这个问题,应该弄清楚window.showModalDialog()的用法,本人在http://www.csdn.net/Develop/read_article.asp?id=15113已经做过介绍.下面就用例子介绍如何在ASP.NET中实现这个功能. 本例子共3个页面,其中WebForm2.aspx是过渡页面,是为了防止提交时打开新页面. WebForm1.

mvc3-MVC 点击按钮关闭当前窗体并刷新父窗体

问题描述 MVC 点击按钮关闭当前窗体并刷新父窗体 一个页面上有一个 Iframe的子页面 ,点击按钮执行玩子页面的Action 之后,也就是提交成功后就要关闭当前页,刷新父窗体.

easyui-关于easyUI如何在一个按钮的点击事件里面设置页面刷新的问题,

问题描述 关于easyUI如何在一个按钮的点击事件里面设置页面刷新的问题, easyUI如何在一个按钮的点击事件里面设置刷新当前页面呢,就是按钮点击后 先要向后台传值,然后还要实现刷新当前页面的功能 解决方案 在按钮的点击事件中通过ajax向后台传值,然后在回调函数中刷新当前页面.例:$("#aaaa").click(function(){ $.ajax( url:"", dataType:"json", data:{ //这里传值 }, suc

asp.net webform页面点击按钮动态添加其他控件,添加控件少于点击次数(页面刷新次数),

问题描述 遇到需求,不用js实现,只用服务器控件,在服务器端实现点击按钮动态添加其他控件.结果由于page_load在按钮event之前执行,这样点击按钮页面刷新时,第一次不会生成控件.最后就是点击次数比生成控件多一个,必须在刷新一次,才能将最后那个控件生成.下面是代码:protectedstaticList<DynamicDropDownList>_dddlControlList=newList<DynamicDropDownList>();protectedstaticList

世界之窗浏览器右键点击按钮有什么功能

  右键点击按钮可使用不同的功能.鼠标悬停在按钮上时将显示按钮对应的功能描述: 常用的右击按钮使用的功能有: 右击新建按钮 - 访问剪贴板中网址 右击恢复按钮 - 显示恢复菜单 右击主页按钮 - 打开全部主页 右击停止.刷新按钮 - 停止.刷新全部 右击搜索按钮 - 搜索页面上选中的,或输入框中的文字

javascript设置连续两次点击按钮时间间隔的方法

  很多时候我们在实际应用中,可能并不希望按钮联系被不间断的点击,所以要限定一定的时间间隔才能够再次点击按钮,下面就通过代码实例介绍一下如何实现此功能,代码如下: 代码如下: 0 以上代码实现了我们的要求,可以限制点击按钮的间隔时间,这一效果可以扩展到其他的功能中,比如限制发帖的间隔时间等等,下面就介绍一下它的实现过程. 代码注释如下: 1.window.onload=function(){},规定文档内容完全加载完毕再去执行函数中的代码. 2.var odiv=document.getElem

使用JS代码实现点击按钮下载文件_javascript技巧

正文 有时候我们在网页上需要增加一个下载按钮,让用户能够点击后下载页面上的资料,那么怎样才能实现功能呢?这里有两种方法: 现在需要在页面上添加一个下载按钮,点击按钮下载文件. 题外话,这个下载图标是引用的 font-awesome 上面的.使用时,首先将 font-awesome 整个文件夹下载下来,利用bower或者是自己去官网上面下载都行. 将整个文件夹放在项目文件中之后,在页面上面引入css文件 <link href="libs/font-awesome-4.7.0/css/font