C# 如何在列表中写入画笔颜色<;牵引作用>;? 类动作 { 公共矩形Dortgen{get;set;} 公共笔刷Firca{get;set;} 公共点坐标{get;set;} 公共绘图动作(画笔颜色、矩形矩形) {Dortgen=rect;Firca=color} 公共绘图动作(画笔颜色) {Firca=color;} 公共提款行动(k_点) {koordina=k_;} } List kare=新列表(); 笔刷=新的SolidBrush(颜色为红色); 专用无效面板1_鼠标(对象发送器,鼠标目标e) { 如果(SeciliSekil==“Dikdortgen”) { if(End.Y>Start.Y&&End.X>Start.X) 添加(新的DrawAction(画笔,新的矩形(Start.X,Start.Y,End.X-Start.X,End.Y-Start.Y)); else if(End.YStart.X) 添加(新的DrawAction(画笔,新的矩形(Start.X,End.Y,End.X-Start.X,Start.Y-End.Y)); else if(End.Y>Start.Y&&End.X
这是我的一些代码。我将画笔数据保存在列表kare中。我想访问所有画笔并获取它们的颜色以将它们写入.txt。我尝试了这个C# 如何在列表中写入画笔颜色<;牵引作用>;? 类动作 { 公共矩形Dortgen{get;set;} 公共笔刷Firca{get;set;} 公共点坐标{get;set;} 公共绘图动作(画笔颜色、矩形矩形) {Dortgen=rect;Firca=color} 公共绘图动作(画笔颜色) {Firca=color;} 公共提款行动(k_点) {koordina=k_;} } List kare=新列表(); 笔刷=新的SolidBrush(颜色为红色); 专用无效面板1_鼠标(对象发送器,鼠标目标e) { 如果(SeciliSekil==“Dikdortgen”) { if(End.Y>Start.Y&&End.X>Start.X) 添加(新的DrawAction(画笔,新的矩形(Start.X,Start.Y,End.X-Start.X,End.Y-Start.Y)); else if(End.YStart.X) 添加(新的DrawAction(画笔,新的矩形(Start.X,End.Y,End.X-Start.X,Start.Y-End.Y)); else if(End.Y>Start.Y&&End.X,c#,winforms,list,class,stream,C#,Winforms,List,Class,Stream,这是我的一些代码。我将画笔数据保存在列表kare中。我想访问所有画笔并获取它们的颜色以将它们写入.txt。我尝试了这个 现在它保存了一些东西。我打开了.txt文件。上面写着“System.Drawing.SolidBrush”。但我需要颜色。我真的很想知道为什么您将颜色更改为笔刷;颜色可以很容易地与SolidBrush和笔一起使用。无论如何:您应该存储SolidBrush的唯一相关属性:颜色。正如我已经告诉过您的,在访问颜色之前,您需要将笔刷转换为SolidBrush。而且,正如我也告诉过您的,
现在它保存了一些东西。我打开了.txt文件。上面写着“System.Drawing.SolidBrush”。但我需要颜色。我真的很想知道为什么您将颜色更改为笔刷;颜色可以很容易地与SolidBrush和笔一起使用。无论如何:您应该存储SolidBrush的唯一相关属性:颜色。正如我已经告诉过您的,在访问颜色之前,您需要将笔刷转换为SolidBrush。而且,正如我也告诉过您的,最简单的方法是然后将颜色转换为long
((SolidBrush)yourbrush.Color.ToArgb().ToString()
-另外:我建议用英语命名未来应用程序的所有元素。DortC.Add(((SolidBrush)yazdortC.Firca.Color)。ToArgb().ToString();我写了这段代码。现在对于四种不同的颜色,文本是-16776961-16744448-8388480-16777216这是否意味着什么?这是意外的吗?您有四种不同的颜色吗?您可以重建原始颜色(通过Color.FromArgb(long))?((您也可以使用((SolidBrush)yourbrush)。Color.ToString()
。更容易阅读和理解。更难处理..(请注意,long是由四个字节构成的;long是有符号的,而负号只是表示设置了第一位。因此它确实意味着不需要担心)您的颜色是蓝色、绿色、紫色和黑色。
class DrawAction
{
public Rectangle Dortgen { get; set; }
public Brush Firca { get; set; }
public PointF Koordinat { get; set; }
public DrawAction(Brush color_, Rectangle rect_ )
{ Dortgen = rect_; Firca = color_; }
public DrawAction(Brush color_)
{ Firca = color_; }
public DrawAction (PointF k_)
{ Koordinat = k_; }
}
List<DrawAction> kare = new List<DrawAction>();
Brush brush = new SolidBrush(Color.Red);
private void Panel1_MouseUp(object sender, MouseEventArgs e)
{
if (SeciliSekil == "Dikdortgen")
{
if (End.Y > Start.Y && End.X > Start.X)
kare.Add(new DrawAction(brush, new Rectangle(Start.X, Start.Y, End.X - Start.X, End.Y - Start.Y)));
else if (End.Y < Start.Y && End.X > Start.X)
kare.Add(new DrawAction(brush, new Rectangle(Start.X, End.Y, End.X - Start.X, Start.Y - End.Y)));
else if (End.Y > Start.Y && End.X < Start.X)
kare.Add(new DrawAction(brush, new Rectangle(End.X, Start.Y, Start.X - End.X, End.Y - Start.Y)));
else if (End.Y < Start.Y && End.X < Start.X)
kare.Add(new DrawAction(brush, new Rectangle(End.X, End.Y, Start.X - End.X, Start.Y - End.Y)));
}
private void SaveButton_Click(object sender, EventArgs e)
{
StreamWriter dortgenrenk = File.CreateText("DortgenRenk.txt");
dortgenrenk.Close();
StreamWriter DortColor;
List<string> DortC = new List<string>();
foreach (DrawAction yazdortC in kare)
DortC.Add((yazdortC.Firca).ToString());
foreach (string s in DortC)
{
DortColor = File.AppendText("DortgenRenk.txt");
DortColor.WriteLine(s);
DortColor.Close();
}
}