C#中自定义颜色库问题!高手指教! 我想自己写一个"颜色设置对话框",不用系统给提供的"colorDialog".但不知如何下手,该调用系统的哪个函数才能调用出颜色面板中的那些可选择的颜色,还有系统提供的颜色等等.??? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 System.Drawing.Color 绝对好用 可以使用从Control继承的任何一个,比如UserControl,Panel等,但是要自己使用Graphics绘制。比如:public class ColorPanel:Control{ protected override void OnPaint(PaintEventArgs e) { base.OnPaint(e); Rectangle colorRect = new Rectangle(0, 0, 10, 10); foreach (KnownColor kc in Enum.GetValues(typeof(KnownColor))) { Color color = Color.FromKnownColor(kc); using (SolidBrush brush = new SolidBrush(color)) { e.Graphics.FillRectangle(brush, colorRect); } if (colorRect.Right+colorRect.Width +2 < this.ClientRectangle.Right) { colorRect.X += colorRect.Width + 2; } else { colorRect.X = 0; colorRect.Y += colorRect.Height + 2; } } } public Color GetColor(int x, int y) { Rectangle colorRect = new Rectangle(0, 0, 10, 10); foreach (KnownColor kc in Enum.GetValues(typeof(KnownColor))) { if (colorRect.Contains(x, y)) { return Color.FromKnownColor(kc); } if (colorRect.Right + colorRect.Width + 2 < this.ClientRectangle.Right) { colorRect.X += colorRect.Width + 2; } else { colorRect.X = 0; colorRect.Y += colorRect.Height + 2; } } return Color.Empty; } protected override void OnMouseClick(MouseEventArgs e) { base.OnMouseClick(e); Console.WriteLine(this.GetColor(e.X, e.Y)); }} 我觉得可以添加一个窗体,上面可以画很多的Label 或是其它的控件,主要是设置它们的背景颜色供用户选择,还可以再加三个文本框,供用户直接输入RGB值。 <%=%>中怎么带入asp TextBox 的值 c#写的CS结构代码调用VC程序应该没问题吧? C#提取数据问题 framework 3.0 问题 关于WEB服务代理 我是c#新手,请问开发windows应用程序,(不是web)我要用多个客户端连接server,然后server 连接数据库,需要连接池么?如何设置? *WEB FORM中关于DATAGRID的问题* 这个系统提示的错误如何解决? 请教一个DATAGRID中HyperLinkColumn多参数的问题 我现在只会delphi,想学C#,不知买什么书入门? 请推荐几本C#关于WinForm编程的书,谢谢! 关于数组的问题(初级)
{
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e); Rectangle colorRect = new Rectangle(0, 0, 10, 10);
foreach (KnownColor kc in Enum.GetValues(typeof(KnownColor)))
{
Color color = Color.FromKnownColor(kc);
using (SolidBrush brush = new SolidBrush(color))
{
e.Graphics.FillRectangle(brush, colorRect);
} if (colorRect.Right+colorRect.Width +2 < this.ClientRectangle.Right)
{
colorRect.X += colorRect.Width + 2;
}
else
{
colorRect.X = 0;
colorRect.Y += colorRect.Height + 2;
}
}
}
public Color GetColor(int x, int y)
{
Rectangle colorRect = new Rectangle(0, 0, 10, 10);
foreach (KnownColor kc in Enum.GetValues(typeof(KnownColor)))
{
if (colorRect.Contains(x, y))
{
return Color.FromKnownColor(kc);
}
if (colorRect.Right + colorRect.Width + 2 < this.ClientRectangle.Right)
{
colorRect.X += colorRect.Width + 2;
}
else
{
colorRect.X = 0;
colorRect.Y += colorRect.Height + 2;
}
}
return Color.Empty;
}
protected override void OnMouseClick(MouseEventArgs e)
{
base.OnMouseClick(e);
Console.WriteLine(this.GetColor(e.X, e.Y));
}
}