C#Forms-Posunutí tlačítka – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

C#Forms-Posunutí tlačítka – C / C++ – Fórum – Programujte.comC#Forms-Posunutí tlačítka – C / C++ – Fórum – Programujte.com

 

nevimjakejmeno
~ Anonymní uživatel
8 příspěvků
16. 1. 2012   #1
-
-1
-
Mimo téma

   

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace psunuti_tlačítka
{
    public partial class Form1 : Form
    {

       
        public Form1()
        {
            InitializeComponent();
            
            
        }

        private void checkBox1_CheckedChanged(object sender, EventArgs e)
        {
            if (checkBox1.Checked == true)
            {
                int ix = 74;
                int i = 1;
                  for (i = 1; i < 100; i++)
                  {
                    button1.Visible = false;
                    button1.Location.X = 1;
                    button1.Refresh();
                  }

                  textBox1.Visible = true;
            }
        }

    }
}

Tady je jednoduchý kod jak posunout tlačítko o 100 pixelu doprava a zobrazení textboxu...nejde mi to spustit hlásí to chybu :Cannot modify return value of System.Windows.Form.Control.Location'because its not variable....
Nevim jestli mám něco změnit v properties tlačítka Díky za radu

Nahlásit jako SPAM
IP: 83.208.39.–
LukoSS
~ Anonymní uživatel
73 příspěvků
16. 1. 2012   #2
-
0
-

1. Kód neposunuje tlačítko o 100px, jen se snažíš 100x přiřadit hodnotu 1 (a 100x nastavit Visible na false, což nemá žádnou logiku)

2. Vlastnost Location je jen pro čtení, pro zápis musíš využít vlastnosti Left a Top

3. Co je těžkého na pochopení této věty?

Diskuze věnovaná jazykům C a C++.

Vlákna o C# patří do diskuze .NET.

Nahlásit jako SPAM
IP: 88.103.252.–
nevimjakejmeno
~ Anonymní uživatel
8 příspěvků
16. 1. 2012   #3
-
0
-

jo Díky

Nahlásit jako SPAM
IP: 83.208.39.–
nevimjakejmeno
~ Anonymní uživatel
8 příspěvků
16. 1. 2012   #4
-
0
-

Jo pardon ja tam dal špatný kod ....ted sem si to přečet ...ten zprávný a funkční je zde 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace psunuti_tlačítka
{
    public partial class Form1 : Form
    {

       
        public Form1()
        {
            InitializeComponent();
            
            
        }

        private void checkBox1_CheckedChanged(object sender, EventArgs e)
        {
            if (checkBox1.Checked == true)
            {
                int ix = 74;
                int i = 1;
                  for (i = 1; i < 100; i++)
                  {
                      button1.Left = ix++;
                  
                    button1.Refresh();
                  }

                  textBox1.Visible = true;
            }
            if (checkBox1.Checked == false)
            {
                textBox1.Visible = false;
                int ix = 174;
                int i = 1;
                for (i = 1; i < 100; i++)
                {
                    button1.Left = ix--;

                    button1.Refresh();
                }

              
            }
            
        }

    }
}

Místo button1.Left = ix++; jsem měl button1.Location.X = ix++; takže Díky moc LokoSS

Nahlásit jako SPAM
IP: 83.208.39.–
Ano to som ja
~ Anonymní uživatel
1 příspěvek
16. 1. 2012   #5
-
0
-

#1 nevimjakejmeno
this.button1.Location = new System.Drawing.Point(1078, 298);

poziciu si nastav podla seba :)

Nahlásit jako SPAM
IP: 84.47.2.–
LukoSS
~ Anonymní uživatel
73 příspěvků
16. 1. 2012   #6
-
0
-

#4 nevimjakejmeno
Můžu vědět, proč vlastně 100x (nebo vlastně jen 99x) provádíš přesun o 1px? Nebylo by jednodušší mu nastavit přímo tu pozici? Nehledě na to, že místo toho, aby sis vytáhl aktuální pozici a pak k ní přičetl nebo odečetl nějakou hodnotu, tak si napevno nastavíš ix = 74. Celá ta metoda jde přepsat takto:

private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
	if (checkBox1.Checked == true)
		button1.Left += 100;
	else
                button1.Left -= 100;

	textBox1.Visible = checkBox1.Checked;
}
Nahlásit jako SPAM
IP: 88.103.252.–
nevimjakejmeno
~ Anonymní uživatel
8 příspěvků
17. 1. 2012   #7
-
0
-

99x provádím přesun proto aby to vypadalo líp tlačítko sklouzne doprava...a díky za to řešení bez te aktualní pozice dělal sem to v noci a to moc nepemýšlím

Nahlásit jako SPAM
IP: 83.208.39.–
LukoSS
~ Anonymní uživatel
73 příspěvků
17. 1. 2012   #8
-
0
-

Pokud chceš udělat plynulý posun, tak na to použij timer 

Nahlásit jako SPAM
IP: 88.103.252.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 5 hostů

Podobná vlákna

Windows forms — založil Johnnny

C# Windows Forms kreslení — založil mstarman

Databáze s Windows Forms — založil Ant

Posunutí — založil erter

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý