c# - 使用自定义属性保存设置
问题描述
我有一个设置为自定义属性
DataGridViewAutoSizeColumnsMode
。如果这与这一切有关,我认为这是一个 ENUM。
我的代码中有一个方法,它将像这样获取和设置属性:
public DataGridViewAutoSizeColumnsMode COLUMN_SIZE_MODE
{
get { return Properties.Settings.Default.COLUMN_SIZE_MODE; }
set { Properties.Settings.Default.COLUMN_SIZE_MODE = value; }
}
现在,该设置由DataGridViewAutoSizeColumnsMode
包含所有选项的组合框控制,并且可以从中读取。但是,我不知道如何将所选值保存到设置变量中。
当我按下“保存”按钮时,在组合框中选择的值应保存到设置变量中。对于其他只是字符串的设置,我可以这样做:
DEFAULT_DATABASE = defaultDatabaseComboBox.Text;
但由于我已将其他设置设置为非文本属性,因此我无法使用 .Text 方法指向组合框中的值,如下所示:
COLUMN_SIZE_MODE = columnSizeModeSetting.Text;
如何将组合框中的文本保存到具有自定义属性的设置中?
解决方案
我刚刚找到了解决方案。我还没有真正理解它,但它就在这里。
要将包含文本的组合框的设置保存到作为自定义枚举属性的设置,我这样做了:
COLUMN_SIZE_MODE = (DataGridViewAutoSizeColumnsMode)Enum.Parse( typeof(DataGridViewAutoSizeColumnsMode), columnSizeModeSetting.Text);
这似乎是一种转换,但为什么我需要这样写我还不太明白。
推荐阅读
- c# - WCF 图像服务正在锁定文件
- graph - 我们可以同时过滤多个标签吗
- jquery - Jquery UI 日期选择器空白
- python - Python,参数解析。-opt1 -part-of-opt1 怎么样
? - mailchimp - 如何使用 Mailchimp API 获取用户所属的所有列表?
- visio - Visio .vsdx 不需要的行为:为什么用户定义的形状值从 1.00E-7 被截断为 0.00E0?
- scala - sbt ivy2:从“编译”中找不到配置“主”
- c# - MVVM:引发从业务层到表示到请求显示的异常
- node.js - 使用 node.js 通过条件向多个主题发送 FCM 通知的正确语法是什么?
- algorithm - 求两个值为 2 的整数之间的异或值