我有textboxes
的winForms。每个textbox
都会显示.ini文件中的设置值。某些.ini文件值已加密,并且需要在将值放入textbox
之前解密值。我已经创建了一个函数:
storeIniValueToVar(string iniSection, string iniKey, bool? encrypt)
是否可以使用自定义参数(如boolean)扩展textbox
属性?加密?我的想法是传递自定义参数boolean?加密storeIniValueToVar
函数的值。
答案 0 :(得分:3)
有一个名为Tag的通用属性。您可以在其中存储任何类型的字符串。 缺点是返回类型是Object,但您不必从UI控件派生。
示例:
private void OnTextBoxChanged(object sender, EventArgs e)
{
var updatedTextBox = sender as TextBox;
object tagObject = updatedTextBox.Tag;
// Further converting of the tag here...
}
将文本框的事件(此处为TextChanged)设置为单个EventHandler,您也可以获取TextBox实例和标记。
答案 1 :(得分:2)
我相信您要求在TextBox
类中添加一个额外的属性,该属性将指示其中包含的文本在从ini文件存储/加载时是否应加密/解密。
你可以做的是子类TextBox
并添加你自己的属性:
class MyTextBox : TextBox
{
public bool Encrypt { get; set; }
}
然后,您在表单上使用MyTextBox
代替TextBox
。