按钮变色

西木凌萧 2011-12-02 09:25:48
下面代码实现的是:如果输入大于64个字符 则一个按钮变绿
怎么实现:输入一段字符后,按钮变绿 删除64个字符后 按钮便会变回原来的control 颜色
 private void text_content_TextChanged(object sender, EventArgs e)
{

int i=0;
int count=Encoding.Unicode.GetByteCount(text_content.Text)/ 64;
textBox_charnumber.Text = Encoding.Unicode.GetByteCount(text_content.Text).ToString();//输出text_content里的字符数。

for ( i = 0; i <= count; i++)//定义了64个按钮。
{
btn[i].BackColor = Color.Green;
}
if (btn[63].BackColor == Color.Green)
{
MessageBox.Show("内存已满");//如何实现当按钮全为绿色的时候 text_content不能输入只能删除?

return;
}
}
...全文
117 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
yinrongg 2011-12-02
  • 打赏
  • 举报
回复
用WPF嘛 呵呵
c02645 2011-12-02
  • 打赏
  • 举报
回复


private void text_content_KeyUp(object sender, KeyEventArgs e)
{

if (user.Text.Length > 10)
{
SendKeys.Send("\b");
return;
} int i = 0;
int count = Encoding.Unicode.GetByteCount(text_content.Text) / 64;
textBox_charnumber.Text = Encoding.Unicode.GetByteCount(text_content.Text).ToString();//输出text_content里的字符数。

for (i = 0; i <= count; i++)//定义了64个按钮。
{
btn[i].BackColor = Color.Green;
}

}

thy442030800 2011-12-02
  • 打赏
  • 举报
回复
额,补充一下, 13那行是不要的,只能删除。 只要不等于8就好了,8是删除键的ASCII码。
最好设置一个私有全局变量去判断,按照你原有的判断第63个按钮的背景颜色 这样不妥,因为也可能有别的错导致你的按钮颜色错误了。
呵呵呵,其实这个很简单的。
thy442030800 2011-12-02
  • 打赏
  • 举报
回复
加入 文本框 keyPress事件,可以设置一个bool变量,按钮绿时设置为True,keyPress事件里判断如果为true并且不是删除键则e.handled为True
也可以:
private void text_content_TextChanged(object sender, EventArgs e)
{
if (btn[63].BackColor == Color.Green &&
e.KeyChar != 8
e.KeyChar != 13)
{
e.Handled=true;
}
}
(纯手写的,不是很好,见谅见谅!)
Waldenz 2011-12-02
  • 打赏
  • 举报
回复
设置一个全局变量,来控制这个输入多少的字符..
在事件里判断全局变量的值,本人认为这样效率高点..
thy442030800 2011-12-02
  • 打赏
  • 举报
回复
你没说清楚你要什么.
dean615 2011-12-02
  • 打赏
  • 举报
回复
MessageBox.Show("内存已满");//如何实现当按钮全为绿色的时候 text_content不能输入只能删除?
把这句改成e.Cancel = true;
试试

110,538

社区成员

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

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

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