🙂 İNSANLARIN EN HAYIRLISI INSANLARA FAYDALI OLANDIR 🙂

Ramazan HABER / C# RMOS / tüm formları dolaşma ve bu formlardaki labellerin text lerini alma

1-) C# RMOS - tüm formları dolaşma ve bu formlardaki labellerin text lerini alma

 

using System;

using System.Data;

using System.Linq;

using System.Reflection;

using System.Windows.Forms;

 

namespace allForm

{

    public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

        }

 

        public string GetThisNamespace()

        {

            return GetType().Namespace;

        }

 

        private Type[] GetTypesInNamespace(Assembly assembly, string nameSpace)

        {

            return

              assembly.GetTypes()

                      .Where(t => String.Equals(t.Namespace, nameSpace, StringComparison.Ordinal))

                      .ToArray();

        }

 

        private void button1_Click(object sender, EventArgs e)

        {

            Type[] typelist = GetTypesInNamespace(Assembly.GetExecutingAssembly(), GetThisNamespace());

            for (int i = 0; i < typelist.Length; i++)

            {

                try

                {

                    var form = Activator.CreateInstance(Type.GetType(GetThisNamespace() + "." + typelist[i].Name)) as Form;

                    ClearLabel(form, form.Name);

                }

                catch (Exception ex) // form olmayınca yani class olunca catche düşer

                {

                    //Console.WriteLine(ex.Message);

                }

            }

        }

 

 private IEnumerable<ToolStripMenuItem> GetItems(ToolStripMenuItem item)

        {

            foreach (ToolStripMenuItem dropDownItem in item.DropDownItems)

            {

                if (dropDownItem.HasDropDownItems)

                {

                    foreach (ToolStripMenuItem subItem in GetItems(dropDownItem))

                        yield return subItem;

                }

                yield return dropDownItem;

            }

        }

 

        

 public void ClearLabel(Control control, string formName)

        {

            if (control is Label)

            {

                Label lbl = (Label)control;

                Console.WriteLine(formName + "-> " + lbl.Text);

            }

            if (control is TextEdit)

            {

                TextEdit lbl = (TextEdit)control;

                Console.WriteLine(formName + "-> " + lbl.Text);

            }

            if (control is LabelControl)

            {

                LabelControl lbl = (LabelControl)control;

                Console.WriteLine(formName + "-> " + lbl.Text);

            }

            if (control is GridControl)

            {

                GridControl lbl = (GridControl)control;

                foreach (GridColumn item in (lbl.MainView as GridView).Columns)

                {

                    Console.WriteLine(formName + "-> " + item.Caption + "-" + item.FieldName);

                }

 

   List<ToolStripMenuItem> allItems = new List<ToolStripMenuItem>();

                foreach (ToolStripMenuItem toolItem in lbl.ContextMenuStrip.Items)

                {

                    allItems.Add(toolItem);

                    //add sub items

                    allItems.AddRange(GetItems(toolItem));

                }

 

                foreach (var item in allItems)

                {

                    listBox1.Items.Add(item.Text+"-"+item.Name);

                }

 

            }

            if (control is NavBarControl)

            {

                NavBarControl lbl = (NavBarControl)control;

 

                for (int i = 0; i < lbl.Items.Count; i++)

                {

                    Console.WriteLine("navbar item-> " + lbl.Items[i].Caption);

                }

 

                for (int i = 0; i < lbl.Groups.Count; i++)

                {

                    Console.WriteLine("navbar_groups -> " + lbl.Groups[i].Caption);

                }

            }

            if (control is PivotGridControl)

            {

                PivotGridControl lbl = (PivotGridControl)control;

                for (int i = 0; i < lbl.GetFieldList().Length; i++)

                {

                    Console.WriteLine("pivot -> " + formName + "-> " + lbl.GetFieldList()[i]);

 

                }

                foreach (PivotGridField item in lbl.Fields)

                {

                    Console.WriteLine("pivot -> " + formName + "-> " + item.Caption + "-" + item.FieldName);

                }

            }

            if (control is RibbonControl)

            {

              

                for (int i = 0; i < companent.Pages.Count; i++)

                {

                    Console.WriteLine(companent.Pages[i].Text.ToString());

                    foreach (RibbonPageGroup group in companent.Pages[i].Groups)// eğer görünüyorsa alt menülerini kontrol et

                    {

                        Console.WriteLine(group.Text);

                        foreach (BarButtonItemLink link in group.ItemLinks)

                        {

                            Console.WriteLine(link.Item.Name + "-" + link.Item.Tag);

                            if (link.Item.DropDownControl != null)

                            {

                                PopupMenu menu = (link.Item.DropDownControl as PopupMenu);

                                Console.WriteLine(link.Item.Name + "*" + link.Item.Tag);

                                for (int j = 0; j < menu.ItemLinks.Count; j++)

                                {

                                    Console.WriteLine(menu.ItemLinks[j].Item.Name + "&" + menu.ItemLinks[j].Item.Tag);

                                }

                            }

                        }

                    }

                }

            }

            if (control is XtraTabControl)

            {

                XtraTabControl lbl = (XtraTabControl)control;

 

                foreach (XtraTabPage item in lbl.TabPages)

                {

                    Console.WriteLine(formName + "-> " + item.Text);

                }

            }

            if (control is BarDockControl)

            {

                BarDockControl lbl = (BarDockControl)control;

                for (int i = 0; i < lbl.Manager.Items.Count; i++)

                {

                    Console.WriteLine(lbl.Manager.Items[i].Caption);

                }

            }

 

  if (control is GridLookUpEdit)

            {

                GridLookUpEdit lbl1 = (GridLookUpEdit)control;

                foreach (GridColumn item in (lbl1.Properties.View).Columns)

                {

                     Console.WriteLine(item.Caption);

                }

            }

 

if (control is LookUpEdit)

            {

                LookUpEdit lbl1 = (LookUpEdit)control;

                lbl1.Properties.PopulateColumns();

                foreach (LookUpColumnInfo item in lbl1.Properties.Columns)

                {

                    item.Caption = Karsilikoku(item.Caption);

                }

            }

 

 

if (control is TreeList)

            {

                TreeList lbl = (TreeList)control;

                foreach (TreeListColumn item in lbl.Columns)

                {

                    Console.WriteLine(item.FieldName.ToString()+"-"+item.Caption.ToString());

                }

            }

 

             foreach (Control child in control.Controls)

                {

                    ClearLabel(child, formName);

                }

            

 

        }

 

    }}

2-) Load da dil için karşılığını yazma tam kodu yazmadım düzeltirsin

 

açıklama: program açılınca tüm datayı çek. sürekli sql e gitmemek için sonra o datadan karşılığını bul yaz dil desteği için

 

 

private void Form1_Load(object sender, EventArgs e)

        {

            ClearLabel(this, "Form1");

        }

 

if (control is Label)

            {

                Label lbl = (Label)control;

                Console.WriteLine(formName + "-> " + lbl.Text);

 

                // select *

                if (lbl.Text.Equals("label12")) // label12 -> sql den gelicek

                {

                    lbl.Text = "label12 ingilizce";

                }

 

            }

 

DataTable dt = new DataTable();

            dt.Columns.Add("tr");

            dt.Columns.Add("en");

            dt.Columns.Add("de");

            dt.Columns.Add("ru");

            DataRow dr = dt.NewRow();

            dr["tr"] = "okul-tr";

            dr["en"] = "okul-en";

            dr["de"] = "okul-de";

            dr["ru"] = "okul-ru";

            dt.Rows.Add(dr);

            dr = dt.NewRow();

            dr["tr"] = "okul-tr1";

            dr["en"] = "okul-en1";

            dr["de"] = "okul-de1";

            dr["ru"] = "okul-ru1";

            dt.Rows.Add(dr);

 

 

            DataRow sonuc = dt.AsEnumerable().Where(myRow => myRow.Field<string>("tr") == "okul-tr").FirstOrDefault();

            /* yukarıdaki kod açıklaması :

              datatable içinde tr sütününda "okul-tr" var is o satırı getir demek.

              birden fazla dönerse ilk satırı alır . eğer yoksa null döner

             */

            if (sonuc != null)

            {

                Console.WriteLine(sonuc["tr"].ToString());

                Console.WriteLine(sonuc["en"].ToString());

                Console.WriteLine(sonuc["ru"].ToString());

                Console.WriteLine(sonuc["de"].ToString());

 

 

            }

 

 

3-) Report için

 

 private void button1_Click(object sender, EventArgs e)

        {

            aa = 0;

            Type[] typelist = GetTypesInNamespace(Assembly.GetExecutingAssembly(), GetThisNamespace());

            for (int i = 0; i < typelist.Length; i++)

            {

                try

                {

                    var form = Activator.CreateInstance(Type.GetType(GetThisNamespace() + "." + typelist[i].Name)) as Form;

                    ClearLabel(form, form.Name);

                    ClearLabel_grid(form, form.Name);

                }

                catch (Exception ex) // form olmayınca yani class olunca catche düşer

                {

                    //Console.WriteLine(ex.Message);

                }

            }

 

 

            typelist = GetTypesInNamespace(Assembly.GetExecutingAssembly(), GetThisNamespace() + ".Raporlar");

            for (int i = 0; i < typelist.Length; i++)

            {

                try

                {

                    XtraReport form1 = Activator.CreateInstance(Type.GetType(GetThisNamespace() + ".Raporlar." + typelist[i].Name)) as XtraReport;

                    clear_rapor(form1, typelist[i].Name);

 

                }

                catch (Exception ex) // form olmayınca yani class olunca catche düşer

                {

                    //Console.WriteLine(ex.Message);

                }

            }

 

            //resx.Close();

        }

 

 

        public void clear_rapor(XtraReport control, string formName)

        {

            foreach (var child in control.Bands)

            {

                Band band = (Band)child;

 

                foreach (var item in band.Controls)

                {

                    if (item is XRLabel)

                    {

                        XRLabel lbl = (XRLabel)item;

                        karsilikYaz(formName, lbl.Text, lbl.Name);

                        //Console.WriteLine(formName + "-> " + lbl.Text);

                    }

 

                    if (item is XRPanel)

                    {

                        XRPanel panel = (XRPanel)item;

                        foreach (var item2 in panel.Controls)

                        {

                            if (item2 is XRLabel)

                            {

                                XRLabel lbl = (XRLabel)item2;

                                karsilikYaz(formName, lbl.Text, lbl.Name);

                                //Console.WriteLine(formName + "-> " + lbl.Text);

                            }

                        }

                    }

                }           }        }

 

 

 2021 Ocak 18 Pazartesi
 425