FrmBase.cs 2.2 KB
using Asa.Theme;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace AccAOI
{
    public partial class FrmBase : Asa.Theme.FlatForm
    {
        public FrmBase()
        {
            InitializeComponent();
        }
         
        public string CurrLanguage = "";
        public string ClassName
        {
            get
            {
                return this.GetType().Name;
            }

        }
        public void LanguageProcess()
        {
            if (CurrLanguage.Equals(AOIResourceCulture.CurrLanguage))
            {
                return;
            }
            string className = this.ClassName;
            CurrLanguage = AOIResourceCulture.CurrLanguage;
         //   this.Text = AOIResourceCulture.GetString(AOIResourceCulture.GetTextIdStr(className), this.Text);
           
            foreach (System.Windows.Forms.Control con in this.Controls)
            {
                ConProcess(con, className);
            }
        }

        private void ConProcess(System.Windows.Forms.Control con, string className)
        {
            if (  con is FlatLabel || con is FlatButton ||   con is Label ||   con is Button)
            {
                string newStr = AOIResourceCulture.GetString(AOIResourceCulture.GetTextIdStr(className, con.Name), con.Text);
                con.Text = newStr;
                con.Tag = newStr;
            }
            else if (con is FlatPanel)
            {
                string newStr = AOIResourceCulture.GetString(AOIResourceCulture.GetTextIdStr(className, con.Name), con.Text);
                FlatPanel pan = (FlatPanel)con;
                foreach (System.Windows.Forms.Control pancon in pan.Controls)
                {
                    ConProcess(pancon, className);
                }
            }
        }
         
        public virtual void LanguagePro()
        { 
        } 

        private void FrmBase_VisibleChanged(object sender, EventArgs e)
        {
            if (this.Visible.Equals(true))
            {
                LanguageProcess();
                LanguagePro();
            }
        }
    }
}