简单的功能,但难以实现!在线等待.......

sephirothy 2008-11-26 05:03:31
1个button控件20个textbox控件.点击BUTTON此时textbox1背景色变为红色,再次点击textbox1变无色而textbox2变为了红色.依次类推.
...全文
92 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
simple870617 2008-11-26
  • 打赏
  • 举报
回复
我只用3个textbox
你加成20个就是了。。。。
simple870617 2008-11-26
  • 打赏
  • 举报
回复
我这样写就能实现了。
simple870617 2008-11-26
  • 打赏
  • 举报
回复

<asp:TextBox ID="TextBox1" runat="server" BackColor="White"></asp:TextBox>
<asp:TextBox ID="TextBox2" runat="server" BackColor="White"></asp:TextBox>
<asp:TextBox ID="TextBox3" runat="server" BackColor="White"></asp:TextBox>
<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />
<asp:Label ID="Label1" runat="server" Text="0" Visible="false"></asp:Label>



TextBox[] tx = new TextBox[3];
tx[0] = TextBox1;
tx[1] = TextBox2;
tx[2] = TextBox3;
int i = int.Parse(Label1.Text);
for (int j = 0; j < tx.Length; j++)
{
if (j == i)
{
tx[j].BackColor = Color.Red;
}
else
{
tx[j].BackColor = Color.White;
}
}
i++;
if (i == tx.Length)
{
i = 0;
}
Label1.Text = i.ToString();
chqj_163 2008-11-26
  • 打赏
  • 举报
回复

this.Controls.FindControl("t"+n++).BackColor=Color.Empty;
if(n>=20)
n=1;
this.Controls.FindControl("t"+n).BackColor=Color.Red;
ProjectDD 2008-11-26
  • 打赏
  • 举报
回复
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
public partial class Form1: Form
{
public Form1()
{
InitializeComponent();
InitializeUserCom();
}
/// <summary>
/// describe:tbs
/// </summary>
public TextBox[] Ptbs
{
get;
set;
}
private void InitializeUserCom()
{
this.Ptbs = new TextBox[] {
this.textBox1,
this.textBox2,
this.textBox3,
this.textBox4,

this.textBox5,
this.textBox6,
this.textBox7,
this.textBox8,
};
this.Pindex = 0;
}

/// <summary>
/// index:index
/// </summary>
public int Pindex
{
get;
set;
}
private void button1_Click(object sender, EventArgs e)
{
if (this.Pindex<9)
{
this.Pindex++;
}
else
{
this.Pindex = 0;
}
this.SetTb(this.Pindex);
}

private void SetTb(int p)
{
for (int i = 0; i < this.Ptbs.Length; i++)
{
if (p==i)
{
this.Ptbs[i].BackColor = Color.White;
}
else
{
this.Ptbs[i].BackColor = Color.Gray;
}
}
}
}
}

lawbc 2008-11-26
  • 打赏
  • 举报
回复
定义textBox的id为t1到t20,再定义个全局变量n=1;
点击按钮事件:c/s,b/s差不多

this.Controls.FindControl("t"+n).BackColor=Color.Red;
n++;
if(n>=20)
n=1;

sephirothy 2008-11-26
  • 打赏
  • 举报
回复
在下着实有些愚昧,不知阁下表达的意思,可否代码表达.
human_2 2008-11-26
  • 打赏
  • 举报
回复
设置一个全局变量
int i=0;
button _click
text1.backcolor=.....
textbox1_click
this.Controls["textbox"+i.tostring()].backcolor=....
i++;
this.Controls["textbox"+i.tostring()].backcolor=....

然后设置所有textbox的 click 事件
为textbox1_click
heyu1000 2008-11-26
  • 打赏
  • 举报
回复
这个不难实现啊,将20个TEXTBOX放到一个集合里面(可以考虑用泛型),每点击一下记录当前是第几个就行了,然后往下面加。

111,130

社区成员

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

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

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