怎么解决这些重复的代码啊?
解决方案 »
- C# winform中listview和checkBox问题
- c#开发windows 服务时遇到的问题
- 如何将DataSet对象装在DataTable中?
- c#问题帮忙解决下不胜感激啊!!!!!
- 为什么StopBits无法赋值为None?
- 请问C#中如何移动图像
- C# SLQ2005 这个错误怎么办呀!很怪!!
- 急:在VS2005C#下开发智能设备线程的问题!!!
- 那位有XML技术路线图?
- Socket客户端二次发送服务器端不能接受的奇怪问题(解决问题给500分)急急急!!!!!
- C# socket大容量连接处理方案
- 无法加载 DLL“OraOps12.dll”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E),着急请大神帮忙看看,谢谢
if (tb != null)
{
var compare = this.Controls.Find("z" + Regex.Replace(tb.Name, @"\D", string.Empty), true);
if (compare != null && compare.Length > 0 && compare[0] is TextBox)
{
if (tb.Text == ((TextBox)compare[0]).Text)
{
tb.ForeColor = Color.Red;
}
}
}
你的id命名规则必须如你代码所写的那样一一对应
{
txt1.TextChanged += (s, e) =>
{
if (txt1.Text == txt2.Text)
txt1.ForeColor = System.Drawing.Color.Red;
else
txt1.ForeColor = System.Drawing.Color.Black;
};
}
这样就能少写代码。“学过之后”你千万不要再说什么“写在一起”。这就好像是堆石头跟建筑设计的区别,是有着本质的区别的。
不过楼主你这个如果不是相等就是红的,那一开始输入个值就是红色的,然后就会一直是红的了还要加else吧
textBox12.ForeColor = Color.Black;
{
public TextBox t1;
public TextBox t2;
public myText(TextBox p_t1,TextBox p_t2)
{
t1 = p_t1;
t2 = p_t2;
t1.TextChanged += (s, e) =>
{
if (t1.Text == t2.Text)
{
t1.ForeColor = System.Drawing.Color.Red;
}
else
{
t1.ForeColor = System.Drawing.Color.Black;
}
};
}
}private void Form5_Load(object sender, EventArgs e)
{
myText[] theText = { new myText(textBox1,z1), new myText(textBox2,z2)};
//do other things}
需要窗体上有textBox1,textBox2;z1,z2 四个文本框
TextBox tb1, tb2;
Dictionary<TextBox, TextBox> TextBoxMap { get; set; } private void Initialize()
{
TextBoxMap = new Dictionary<TextBox, TextBox>()
{
{textbox1,tb1 },{textbox2,tb2}
}; TextBoxMap.Keys.ToList().ForEach(tb => tb.TextChanged += (s, e) =>
{
if (s is TextBox t1 && TextBoxMap.TryGetValue(t1, out TextBox t2))
{
t1.ForeColor = t1.Text == t2.Text ? Color.Red : Color.Black;
}
});
}
我在3楼回答了
http://bbs.csdn.net/topics/392294918
http://blog.csdn.net/yuhijk2055/article/details/78766312