You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取FormDesign中画笔的颜色并将颜色数据存入List?

嘿,我来帮你搞定这个问题!下面是针对你的需求的具体实现方案:

获取当前画笔颜色并存储到List中

核心思路是先维护一个全局的画笔变量,让所有按钮点击操作都修改这个统一的变量,这样就能随时获取它的颜色,再把颜色存入List即可。

步骤1:定义全局变量

在你的Form类里先声明全局画笔和存储颜色的List:

using System.Drawing;
using System.Collections.Generic;

// 全局画笔,初始设为默认颜色(比如黑色)
private Brush currentBrush = Brushes.Black;
// 用来存储颜色的List
private List<Color> colorRecordList = new List<Color>();

步骤2:按钮点击事件设置画笔颜色

给每个颜色按钮绑定点击事件,直接修改全局画笔的同时,按需把颜色存入List:

// 红色按钮点击事件
private void btnRed_Click(object sender, EventArgs e)
{
    currentBrush = Brushes.Red;
    // 每次设置颜色就自动存入List
    colorRecordList.Add(currentBrush.Color);
}

// 蓝色按钮点击事件
private void btnBlue_Click(object sender, EventArgs e)
{
    currentBrush = Brushes.Blue;
    colorRecordList.Add(currentBrush.Color);
}

其他颜色按钮(比如绿色、黄色)照着这个逻辑改对应的Brushes.XXX就行。

步骤3:随时获取当前画笔颜色

不管你在Form的哪个方法里,只要需要当前颜色,直接访问全局画笔的Color属性即可:

// 获取当前画笔颜色
Color currentColor = currentBrush.Color;
// 举个例子:弹出提示显示当前颜色
MessageBox.Show($"当前画笔颜色:{currentColor.Name}");

可选:手动触发存储颜色

如果不想每次设置颜色都自动存,而是需要手动触发(比如加一个“保存当前颜色”按钮),可以单独写一个事件:

private void btnSaveColor_Click(object sender, EventArgs e)
{
    colorRecordList.Add(currentBrush.Color);
    MessageBox.Show($"已保存颜色:{currentBrush.Color.Name},当前List共{colorRecordList.Count}条记录");
}

注意事项

  • 务必确保引用了System.Drawing命名空间,否则Brush、Color这些类会报错;
  • 如果有逻辑可能把currentBrush设为null,记得先判空再访问Color属性,避免空引用异常:
    if (currentBrush != null)
    {
        Color safeColor = currentBrush.Color;
        // 后续操作
    }
    

内容的提问来源于stack exchange,提问作者PreS

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 03:28:07