C#.NET中的 sender Tag 功能在支持多语言的通用权限管理系统组件中的实际应用范例
2010-12-15 19:13 通用C#系统架构 阅读(2784) 评论(14) 编辑 收藏 举报未必人人是高手,希望以下代码参考,能对初学者有所帮助借鉴。
程序的运行效果如下:
多语言包的效果如下:
当前选择了什么语言,保存在这个XML文件里
这里是Tag的用法参考
3个单选框按钮,用了同一个触发事件
这里是 sender Tag 的实际代码参考,里面还用了强类型转换。
代码可以复制这里的
/// <summary>
/// 设置默认语言被选中状态
/// </summary>
private void SetCurrentLanguage()
{
this.rbzhCN.Checked = this.rbzhCN.Tag.ToString().Equals(BaseSystemInfo.CurrentLanguage);
this.rbzhTW.Checked = this.rbzhTW.Tag.ToString().Equals(BaseSystemInfo.CurrentLanguage);
this.rbenUS.Checked = this.rbenUS.Tag.ToString().Equals(BaseSystemInfo.CurrentLanguage);
}
private void rbCurrentLanguage_CheckedChanged(object sender, EventArgs e)
{
// 要确认是用户点击发生的实践,不是默认加载时发生的事件
if (this.FormLoaded)
{
// 设置当前语言选项
BaseSystemInfo.CurrentLanguage = ((RadioButton)sender).Tag.ToString();
this.Localization(this);
// 保存用户的信息
ConfigHelper.SaveConfig();
}
}
/// 设置默认语言被选中状态
/// </summary>
private void SetCurrentLanguage()
{
this.rbzhCN.Checked = this.rbzhCN.Tag.ToString().Equals(BaseSystemInfo.CurrentLanguage);
this.rbzhTW.Checked = this.rbzhTW.Tag.ToString().Equals(BaseSystemInfo.CurrentLanguage);
this.rbenUS.Checked = this.rbenUS.Tag.ToString().Equals(BaseSystemInfo.CurrentLanguage);
}
private void rbCurrentLanguage_CheckedChanged(object sender, EventArgs e)
{
// 要确认是用户点击发生的实践,不是默认加载时发生的事件
if (this.FormLoaded)
{
// 设置当前语言选项
BaseSystemInfo.CurrentLanguage = ((RadioButton)sender).Tag.ToString();
this.Localization(this);
// 保存用户的信息
ConfigHelper.SaveConfig();
}
}
将权限管理、工作流管理做到我能力的极致,一个人只能做好那么很少的几件事情。