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()]; } }
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。