如何在文本框中添加额外的属性参数?

时间:2013-08-11 02:38:17

标签: c# winforms properties textbox

我有textboxes的winForms。每个textbox都会显示.ini文件中的设置值。某些.ini文件值已加密,并且需要在将值放入textbox之前解密值。我已经创建了一个函数:

storeIniValueToVar(string iniSection, string iniKey, bool? encrypt)

是否可以使用自定义参数(如boolean)扩展textbox属性?加密?我的想法是传递自定义参数boolean?加密storeIniValueToVar函数的值。

2 个答案:

答案 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