winform 中 textbox如何根据用户输入信息更改显示颜色

xeppp 2010-05-07 01:35:51
我们要实现一个功能 在textbox中 根据用户输入的信息 判断类型 显示不同颜色

例如 用户输入 xep123ot0

显示颜色就是 xep123ot0
请问如何实现 谢谢
...全文
279 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
xeppp 2010-05-10
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 ahsun1987 的回复:]
LZ我猜你是某些设备或是某事件抛回的消息,
而你要根据返回来的不同的消息而显示不同的颜色的吧

所以我想不会是一句话中同时出现不同的颜色的吧??

如果是来的一条消息中就显示出不同的颜色我看比较吃力做起来
希望lz把你做的东西描述的再详细点
[/Quote]

对用户输入的信息用颜色显示出来 主要还是区别 数据 0 和 字母 o
xeppp 2010-05-10
  • 打赏
  • 举报
回复
如果在keydown事件下写代码 这样不能处理 ctrl+c ctrl+v 的情况

所以 要在 textchange事件中写代码

当用户输入完信息 字母数字特殊符号(xep123ot0@@) 时候

显示成这样 xep123ot0@@
yuanhuiqiao 2010-05-07
  • 打赏
  • 举报
回复
完善版1
        
private void richTextBox1_KeyDown(object sender, KeyEventArgs e)
{
if ((char)e.KeyData >= '0' && (char)e.KeyData <= '9')
{
richTextBox1.Select(richTextBox1.Text.Length, 1);
richTextBox1.SelectionColor = Color.Red;
}
else
{
richTextBox1.Select(richTextBox1.Text.Length, 1);
richTextBox1.SelectionColor = Color.Cyan;
}
}
skep99 2010-05-07
  • 打赏
  • 举报
回复
按楼主要求重做了下



/// <summary>
/// 键入时文本根据类型变色
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void richTextBox1_KeyDown(object sender, KeyEventArgs e)
{
//数字
if (e.KeyValue > 95 && e.KeyValue < 106)
{
richTextBox1.Select(richTextBox1.Text.Length, 1);
richTextBox1.SelectionColor = Color.Red;

richTextBox1.Show();
}
else//非数字
{

richTextBox1.Select(richTextBox1.Text.Length , 1);
richTextBox1.SelectionColor = Color.Purple;

}
}
Taiyangchen 2010-05-07
  • 打赏
  • 举报
回复
LZ我猜你是某些设备或是某事件抛回的消息,
而你要根据返回来的不同的消息而显示不同的颜色的吧

所以我想不会是一句话中同时出现不同的颜色的吧??

如果是来的一条消息中就显示出不同的颜色我看比较吃力做起来
希望lz把你做的东西描述的再详细点
skep99 2010-05-07
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 xeppp 的回复:]
用richtextbox 具体怎么实现呢?
[/Quote]

7楼实现的差不多了,选中要变的字符串,然后button事件

private void button1_Click(object sender, EventArgs e)
{

ColorDialog cd = new ColorDialog();
if (cd.ShowDialog() == DialogResult.OK)
{
richTextBox1.SelectionColor = cd.Color;
}

}

Taiyangchen 2010-05-07
  • 打赏
  • 举报
回复
我正在帮你写。。

===
xeppp 2010-05-07
  • 打赏
  • 举报
回复
用richtextbox 具体怎么实现呢?
skep99 2010-05-07
  • 打赏
  • 举报
回复
用richTextBox
Taiyangchen 2010-05-07
  • 打赏
  • 举报
回复
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

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

private void button1_Click(object sender, EventArgs e)
{
colorDialog1.ShowDialog();
richTextBox1.Focus();
}

private void richTextBox1_Enter(object sender, EventArgs e)
{
richTextBox1.SelectionColor = colorDialog1.Color;
}
}
}


这样就可以实现了,可以实现不痛的颜色了
用richTextBox就可以实现,
至于你说的那种自动识别颜色是可以自己写进去的,也好是好实现的
xeppp 2010-05-07
  • 打赏
  • 举报
回复
首先谢谢 ahsun1987( 为爱而努力)

我想你理解错了 不是用户去选择什么颜色 是我们根据用户输入信息 来显示文字颜色

Taiyangchen 2010-05-07
  • 打赏
  • 举报
回复
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

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

private void button1_Click(object sender, EventArgs e)
{
ColorDialog cd = new ColorDialog();
if (cd.ShowDialog() == DialogResult.OK)
{
textBox1.ForeColor = cd.Color;
}

}
}
}


只写出这样的,我好郁闷。。。
cyhf00808 2010-05-07
  • 打赏
  • 举报
回复
额,学习下
Justin-Liu 2010-05-07
  • 打赏
  • 举报
回复
用RichTextBox
Taiyangchen 2010-05-07
  • 打赏
  • 举报
回复
先等着,我在帮你写
xeppp 2010-05-07
  • 打赏
  • 举报
回复
如果需要重写控件 请把参照方式留下 谢谢

如果分数不够 还会再加

110,567

社区成员

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

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

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