none
jak na indexy

    Dotaz

  • Dobrý den všem

    jsem začátečník a potřeboval bych pomoc.

    Mám program který postupně schovává tlačítka a odkrývá tím pozadí (obrázek).

    V jednom okamžiku potřebuji znovu zviditelnit všechna neviditelná tlačítka.

    Zkusil jsem toto, ale hlásí, že button neexistuje:

    private void but_obnova_Click(object sender, EventArgs e)
        {
            for (int i = 0; i <= 40; i++)
                (button[i]).Visible = true;
       
         }

    Děkuji za případnou pomoc.

    9. listopadu 2012 13:30

Všechny reakce

  • Dobrý den,

    a jak máš definovaná tlačítka? Pokud nejsou v poli nemůžeš se na ně jako na pole obracet.

    Zkus tedy něco takovéhoto (musíš si to upravit podle názvu proměnných (tlačítek) v tvém programu:

    private void but_obnova_Click(object sender, EventArgs e)
        {
            button1.Visible = true;
            button2.Visible = true;
            button3.Visible = true;
            button4.Visible = true;
            button5.Visible = true;
            button6.Visible = true;
            button7.Visible = true;
            button8.Visible = true;
            button9.Visible = true;
            button10.Visible = true;
            button11.Visible = true;
            button12.Visible = true;
            button13.Visible = true;
            button14.Visible = true;
            button15.Visible = true;
            button16.Visible = true;
            button17.Visible = true;
            button18.Visible = true;
            button19.Visible = true;
            button20.Visible = true;
            button21.Visible = true;
            button22.Visible = true;
            button23.Visible = true;
            button24.Visible = true;
            button25.Visible = true;
            button26.Visible = true;
            button27.Visible = true;
            button28.Visible = true;
            button29.Visible = true;
            button30.Visible = true;
            button31.Visible = true;
            button32.Visible = true;
            button33.Visible = true;
            button34.Visible = true;
            button35.Visible = true;
            button36.Visible = true;
            button37.Visible = true;
            button38.Visible = true;
            button39.Visible = true;
            button40.Visible = true;
         }


    JCH


    9. listopadu 2012 14:29
  • Tohle jsem chtěl právě obejít tím cyklem.

    Zkusím to nějak tím polem tlačítek.

    Díky za radu.

    10. listopadu 2012 16:05
  • Následující kód vytvoří matici 5 x 5 tlačítek, všechna se skryjí voláním metod odkryjLINQ nebo odkryjForEach

    using System;
    using System.Collections.Generic;
    using System.Windows.Forms;
    
    namespace WindowsFormsApplication3
    {
    	public partial class Form1 : Form
    	{
    		public Form1()
    		{
    			InitializeComponent();
    		}
    
    		List<Button> tlacitka = new List<Button>();
    
    		private void Form1_Load(object sender, EventArgs e)
    		{
    			for (int i = 0; i < 5; i++)
    			{
    				for (int j = 0; j < 5; j++)
    				{
    					Button tl = new Button();
    					tl.Left = i * 50;
    					tl.Top = j * 50;
    					tl.Width = tl.Height = 50;
    					tl.Text = (j * 5 + i + 1).ToString();					
    					tlacitka.Add(tl);
    					Controls.Add(tl);
    				}
    			}
    		}
    
    		void odkryjLINQ()
    		{
    			tlacitka.ForEach(tl => tl.Visible = false);
    		}
    
    		void odkryjForEach()
    		{
    			foreach (Button tl in tlacitka)
    			{
    				tl.Visible = false;
    			}
    		}
    
    	}
    }
    

    11. prosince 2012 13:26
  • Ahoj,

    tvůj kod funguje ale tazatel psal že je začátečník. Nemyslím že bude tlačítka vkládat jinak než přes GUI. Pokud ano, tak to takto nemá šanci zařídit.

    .

    Jinak hezká práce.


    JCH

    11. prosince 2012 13:48