Winforms 我们可以将所选的自定义颜色保存在ColorIDialog中吗?

Winforms 我们可以将所选的自定义颜色保存在ColorIDialog中吗?,winforms,vb.net-2010,Winforms,Vb.net 2010,当窗体关闭时,我在显示colordialog时遇到问题。我们可以在VB.NET的colordialog中保存自定义颜色选择吗?您可以使用CustomColors属性获取并设置自定义颜色。这是一个int数组,其中颜色格式为00BBGGRRB为蓝色,G为绿色,R为红色。您可以将.Net颜色转换为以下格式: Color myColor = Color.Green; int ColorAsBGR = (((myColor.B << 16) | (myColor.G << 8))

当窗体关闭时,我在显示colordialog时遇到问题。我们可以在VB.NET的colordialog中保存自定义颜色选择吗?

您可以使用
CustomColors
属性获取并设置自定义颜色。这是一个
int
数组,其中颜色格式为
00BBGGRR
<代码>B为蓝色,
G
为绿色,
R
为红色。您可以将.Net颜色转换为以下格式:

Color myColor = Color.Green;
int ColorAsBGR = (((myColor.B << 16) | (myColor.G << 8)) | myColor.R);
dlgColor.CustomColors = new int[] { ColorAsBGR };

您必须在int数组中存储和检索每个自定义颜色,并使用它设置CustomColors属性。

您可以使用
CustomColors
属性获取和设置自定义颜色。这是一个
int
数组,其中颜色格式为
00BBGGRR
<代码>B为蓝色,
G
为绿色,
R
为红色。您可以将.Net颜色转换为以下格式:

Color myColor = Color.Green;
int ColorAsBGR = (((myColor.B << 16) | (myColor.G << 8)) | myColor.R);
dlgColor.CustomColors = new int[] { ColorAsBGR };

您必须在int数组中存储和检索每个自定义颜色,并使用它设置CustomColor属性。

由于此问题标记为VB.NET 2010,我将提供一个兼容的VB.NET答案

定制颜色 如果用户在使用
颜色对话框时添加自定义颜色,则可以使用属性访问这些颜色。它以
整数()的形式返回它们的颜色

使用
My.Settings
存储这些自定义颜色的最方便的地方可能是,它为您提供了一个按用户存储设置的方便位置(如果您正在寻找的话)

如果您试图使用GUI添加
Integer()
类型化设置,您会发现它不起作用,Visual Studio不支持这一点

幸运的是,您仍然可以通过手动编辑Settings.Settings文件来完成这项工作

(感谢)

  • 首先,使用“我的项目”中的GUI,添加一个名为
    CustomColors
    String
    类型设置,稍后我们将更改类型
  • 在解决方案资源管理器顶部,单击“显示所有文件”,展开“我的项目”
  • 您应该看到一个Settings.Settings文件,右键单击该文件,然后选择“打开方式”,选择XML(文本)编辑器
  • 文件的内容如下所示:

    设置。设置
    
    
    Type=“System.String”
    更改为
    Type=“System.Int32[]”
    ,这样您就有了:

    
    
    表格1.vb: 下面是一些示例代码,展示了如何使用此技术:

    公共类表单1
    私有子BTNCOOSECOLOR\u单击(发件人作为对象,e作为事件参数)处理BTNCOOSECOLOR。单击
    '我假设dlgColorDialog是使用表单设计器放置的。
    dlgColorDialog.ShowDialog()
    端接头
    私有子表单1_Load(发送方作为对象,e作为事件参数)处理MyBase.Load
    '加载表单时,将自定义颜色从My.Settings加载到对话框中。
    dlgColorDialog.CustomColors=My.Settings.CustomColors
    端接头
    私有子表单1\u FormClosing(发送方作为对象,e作为FormClosingEventArgs)处理MyBase.FormClosing
    '窗体关闭时保存自定义颜色。
    My.Settings.CustomColors=dlgColorDialog.CustomColors
    My.Settings.Save()
    端接头
    末级
    
    由于此问题标记为VB.NET 2010,我将提供一个兼容的VB.NET答案

    定制颜色 如果用户在使用
    颜色对话框时添加自定义颜色,则可以使用属性访问这些颜色。它以
    整数()的形式返回它们的颜色

    使用
    My.Settings
    存储这些自定义颜色的最方便的地方可能是,它为您提供了一个按用户存储设置的方便位置(如果您正在寻找的话)

    如果您试图使用GUI添加
    Integer()
    类型化设置,您会发现它不起作用,Visual Studio不支持这一点

    幸运的是,您仍然可以通过手动编辑Settings.Settings文件来完成这项工作

    (感谢)

  • 首先,使用“我的项目”中的GUI,添加一个名为
    CustomColors
    String
    类型设置,稍后我们将更改类型
  • 在解决方案资源管理器顶部,单击“显示所有文件”,展开“我的项目”
  • 您应该看到一个Settings.Settings文件,右键单击该文件,然后选择“打开方式”,选择XML(文本)编辑器
  • 文件的内容如下所示:

    设置。设置
    
    
    Type=“System.String”
    更改为
    Type=“System.Int32[]”
    ,这样您就有了:

    
    
    表格1.vb: 下面是一些示例代码,展示了如何使用此技术:

    公共类表单1
    私有子BTNCOOSECOLOR\u单击(发件人作为对象,e作为事件参数)处理BTNCOOSECOLOR。单击
    '我假设dlgColorDialog是使用表单设计器放置的。
    dlgColorDialog.ShowDialog()
    端接头
    私有子表单1_Load(发送方作为对象,e作为事件参数)处理MyBase.Load
    '加载表单时,将自定义颜色从My.Settings加载到对话框中。
    dlgColorDialog.CustomColors=My.Settings.CustomColors
    端接头
    私有子表单1\u FormClosing(发送方作为对象,e作为FormClosingEventArgs)处理MyBase.FormClosing
    '窗体关闭时保存自定义颜色。
    My.Settings.CustomColors=dlgColorDialog.CustomColors
    My.Settings.Save()
    端接头
    末级
    
    我想问题标题中有一个输入错误,一个额外的“I”,我想你的意思是“ColorDialog”。此外,我认为VB.NET-2010标记可以删除,这不是VB.NET 2010特有的,我建议使用[.NET-4.0]标记,可能还有[VB]标记。我认为问题标题中有一个拼写错误,一个额外的“I”,我想你的意思是“ColorDialog”。另外,我认为VB.NET-2010标记可以删除,这不是VB.NET 2010特有的,我建议使用[.NET-4.0]标记