Winforms 我们可以将所选的自定义颜色保存在ColorIDialog中吗?
当窗体关闭时,我在显示colordialog时遇到问题。我们可以在VB.NET的colordialog中保存自定义颜色选择吗?您可以使用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))
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]标记