C#语言还是比较常见的东西,这里我们主要介绍C#调用函数显示值,包括介绍读取控件中子控件等方面。
C#调用函数显示值
我们可以在每个窗体的Load()事件中,C#调用函数显示值,来实现这个功能。当然,我们首先必须先,获得这个窗体要显示的语言的代码(如EN或ZH),该值可以存放在一个"全局"变量中(比如把值通过 Global.SetValue("lang",langugae)存入,通过Global.GetValue("lang")取出)。
- /// <summary>
- /// 获取控件的名称
- /// </summary>
- /// <param name="form"></param>
- public static void getNames(Form form)
- {
- //根据用户选择的语言获得表的显示文字
- Hashtable table = AppConfig.ReadResource
(form.Name,Global.GetValue("lang").ToString());- Control.ControlCollection controlNames = form.Controls;
- //可以在这里设置窗体的一些统一的属性,这样所有的窗体都会应用该设置
- // form.KeyPreview = true;
- // form.MaximizeBox = false;
- // form.MinimizeBox = false;
- // form.ControlBox = false;
- // form.FormBorderStyle = FormBorderStyle.FixedDialog;
- // form.StartPosition = FormStartPosition.CenterScreen;
- // form.TopMost = true;
- // form.KeyDown += new KeyEventHandler(OnEnter);
- try
- {
- foreach(Control control in controlNames)
- {
- if(control.GetType() == typeof(System.Windows.Forms.Panel))
- GetSubControls(control.Controls,table);
- if(control.GetType() == typeof(System.Windows.Forms.GrouPBox))
- GetSubControls(control.Controls,table);
- // if(control.GetType() == typeof
(System.Windows.Forms.TextBox) && control.Enabled)- // control.GotFocus += new EventHandler(Txt_Focus);
- if(table.Contains(control.Name.ToLower()))
- control.Text = (string)table[control.Name.ToLower()];
- }
- if(table.Contains(form.Name.ToLower()))
- form.Text = (string)table[form.Name.ToLower()];
- }
- catch(Exception ex)
- Console.WriteLine(ex.ToString());
- }
因为有些控件其内部还有子控件,所以我们还要有个读取控件中子控件的C#调用函数显示值。
- /// <summary>
- /// 获得子控件的显示名
- /// </summary>
- /// <param name="controls"></param>
- /// <param name="table"></param>
- private static void GetSubControls(Control.ControlCollection controls,Hashtable table)
- {
- foreach(Control control in controls)
- {
- if(control.GetType() == typeof(System.Windows.Forms.Panel))
- GetSubControls(control.Controls,table);
- if(control.GetType() == typeof(System.Windows.Forms.GroupBox))
- GetSubControls(control.Controls,table);
- if(table.Contains(control.Name.ToLower()))
- control.Text = (string)table[control.Name.ToLower()];
- }
- }
【编辑推荐】