Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Neaktivní uživatel:26.10.2012 13:06

Dá se nějak jednoduše změnit barva okna ? Např. jak to máš Skype (modrou)

Odpovědět
26.10.2012 13:06
Neaktivní uživatelský účet
Avatar
Nahoru Odpovědět
26.10.2012 13:14
Neaktivní uživatelský účet
Avatar
matesax
Tvůrce
Avatar
Odpovídá na Neaktivní uživatel
matesax:26.10.2012 13:22

BackColor...

Editováno 26.10.2012 13:23
 
Nahoru Odpovědět
26.10.2012 13:22
Avatar
Odpovídá na matesax
Neaktivní uživatel:26.10.2012 13:25

Myslím tam nahoře jak je název okna

Nahoru Odpovědět
26.10.2012 13:25
Neaktivní uživatelský účet
Avatar
matesax
Tvůrce
Avatar
Odpovídá na Neaktivní uživatel
matesax:26.10.2012 13:27

Máš-li na mysli border - tak si jej nakresli sám...

 
Nahoru Odpovědět
26.10.2012 13:27
Avatar
Odpovídá na matesax
Neaktivní uživatel:26.10.2012 14:19

Dají se nějak vybrat všechny položky v daném formu ?
Třeba když mám otevřený 2 formy, jednom mám třeba 5 buttonů, 8 inputů, třeba kalendář atd.
a v tom druhým mám jeden button, dá se nějak udělat aby se po zmáčknutí toho buttonu skrylo vše v prvním formu ?

Nahoru Odpovědět
26.10.2012 14:19
Neaktivní uživatelský účet
Avatar
Odpovídá na Neaktivní uživatel
Neaktivní uživatel:26.10.2012 14:29

tzn. abych nemusel dávat
textbox1.visible = false;
textbox2.visible = false;
button1.visible = false;
.
.
.

Nahoru Odpovědět
26.10.2012 14:29
Neaktivní uživatelský účet
Avatar
David Jančík
Vlastník
Avatar
Odpovídá na Neaktivní uživatel
David Jančík:26.10.2012 14:29

Dej si je do Panelu.

Nahoru Odpovědět
26.10.2012 14:29
Zapomeň, že je to nemožné a udělej to ;)
Avatar
Odpovídá na David Jančík
Neaktivní uživatel:26.10.2012 14:35

No, skryly se mi ale nechcou se mi zobrazit :D
Vychozí stav je false, když je chci ukázat tak mi to nejde

Editováno 26.10.2012 14:36
Nahoru Odpovědět
26.10.2012 14:35
Neaktivní uživatelský účet
Avatar
matesax
Tvůrce
Avatar
Odpovídá na Neaktivní uživatel
matesax:26.10.2012 14:43

Button Click:

panelx.Visible = !panelx.Visible;
 
Nahoru Odpovědět
26.10.2012 14:43
Avatar
matesax
Tvůrce
Avatar
Odpovídá na Neaktivní uživatel
matesax:26.10.2012 14:49

Místo Buttonu by se hodil CheckBox...

Checked Changed:

panelx.Visible = checkBox1.Checked;
Editováno 26.10.2012 14:49
 
Nahoru Odpovědět
26.10.2012 14:49
Avatar
Nahoru Odpovědět
26.10.2012 14:50
Neaktivní uživatelský účet
Avatar
Eldest
Tvůrce
Avatar
Odpovídá na Neaktivní uživatel
Eldest:26.10.2012 14:50

Tak nastavíš jednoduše na true ne?:)

 
Nahoru Odpovědět
26.10.2012 14:50
Avatar
Nahoru Odpovědět
26.10.2012 14:50
Neaktivní uživatelský účet
Avatar
Nahoru Odpovědět
26.10.2012 14:51
Neaktivní uživatelský účet
Avatar
Eldest
Tvůrce
Avatar
Odpovídá na Neaktivní uživatel
Eldest:26.10.2012 14:52

Nějak nechápu tvůj problém :D

 
Nahoru Odpovědět
26.10.2012 14:52
Avatar
Odpovídá na Eldest
Neaktivní uživatel:26.10.2012 14:53

to true mi právě nejede

Nahoru Odpovědět
26.10.2012 14:53
Neaktivní uživatelský účet
Avatar
Odpovídá na matesax
Neaktivní uživatel:26.10.2012 14:57

matesax to s tím vykřičníkem nejede

Nahoru Odpovědět
26.10.2012 14:57
Neaktivní uživatelský účet
Avatar
Eldest
Tvůrce
Avatar
Eldest:26.10.2012 14:58

Zkus poslat screenshot, ať víme co máš přesně na mysli a snažíš se udělat. Popř. co přesně píšeš.

 
Nahoru Odpovědět
26.10.2012 14:58
Avatar
matesax
Tvůrce
Avatar
Odpovídá na Neaktivní uživatel
matesax:26.10.2012 14:58

Máš ten panel vůbec přidaný v Controls? :)

 
Nahoru Odpovědět
26.10.2012 14:58
Avatar
Odpovídá na matesax
Neaktivní uživatel:26.10.2012 15:00

Controls ? :D
Mám

private void button1_Click(object sender, EventArgs e)
        {
Form1 form = new Form1();
            if (textBox2.Text == "mujtext" && textBox1.Text == "jinytext")
            {
                form.panel3.Visible = !panel3.Visible;
                this.Close();
            }

        }
Nahoru Odpovědět
26.10.2012 15:00
Neaktivní uživatelský účet
Avatar
matesax
Tvůrce
Avatar
Odpovídá na Neaktivní uživatel
matesax:26.10.2012 15:04

Musíš mít:
několikrát

panel1.Controls.Add

a pak

Controls.Add(panel1);
 
Nahoru Odpovědět
26.10.2012 15:04
Avatar
Nahoru Odpovědět
26.10.2012 15:06
Neaktivní uživatelský účet
Avatar
matesax
Tvůrce
Avatar
Odpovídá na Neaktivní uživatel
matesax:26.10.2012 15:06

Tvl - aby se ti to vykreslilo ve Formu... :)

Podívej se do designové části - tam to máš mít...

Editováno 26.10.2012 15:07
 
Nahoru Odpovědět
26.10.2012 15:06
Avatar
Odpovídá na matesax
Neaktivní uživatel:26.10.2012 15:07

a co se mi tam mááá vykreslíííííí­ííííííííííííí­ííííííííííííí­ít ? :D

Nahoru Odpovědět
26.10.2012 15:07
Neaktivní uživatelský účet
Avatar
matesax
Tvůrce
Avatar
Odpovídá na Neaktivní uživatel
matesax:26.10.2012 15:07

Panel s Controly...

Editováno 26.10.2012 15:08
 
Nahoru Odpovědět
26.10.2012 15:07
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Neaktivní uživatel
David Hartinger:26.10.2012 15:08

Do panelu si může kontroly napřidávat v designeru. Nemusí mít ani panel, stačí proiterovat kolekci Controls na Formu. Ale opět tu řešíme co si Dan myslí, že chce, a ne to, co potřebuje. Bylo by lepší, kdyby nám řekl co chce udělat.

Nahoru Odpovědět
26.10.2012 15:08
New kid back on the block with a R.I.P
Avatar
Odpovídá na matesax
Neaktivní uživatel:26.10.2012 15:09

hele teď ti fakt nerozumím :D

DO toho panelu jsem si natáhl pár věciček (buttony,inputy atp.), výchozí stav je Visible = false; a chci že když zmáčknu ve 2. formu tlačítko aby se mi v tom 1. nastavilo na visible = true;...

Nahoru Odpovědět
26.10.2012 15:09
Neaktivní uživatelský účet
Avatar
Odpovídá na David Hartinger
Neaktivní uživatel:26.10.2012 15:11

No, máš to tady ;)

Nahoru Odpovědět
26.10.2012 15:11
Neaktivní uživatelský účet
Avatar
matesax
Tvůrce
Avatar
Odpovídá na Neaktivní uživatel
matesax:26.10.2012 15:21
partial class MainForm
{
    private System.ComponentModel.IContainer components = null;

    protected override void Dispose(bool disposing)
    {
        if (disposing && (components != null))
        {
            components.Dispose();
        }
        base.Dispose(disposing);
    }

private void InitializeComponent()
        {
            this.panel1 = new System.Windows.Forms.Panel();
            this.SuspendLayout();
            //
            // panel1
            //
            this.panel1.Location = new System.Drawing.Point(0, 0);
            this.panel1.Name = "panel1";
            this.panel1.Size = new System.Drawing.Size(200, 100);
            this.panel1.TabIndex = 0;

...

panel1.Controls.Add // několikrát
public partial class MainForm : Form
{
    public MainForm()
    {
        InitializeComponent();

        new Daughter(this).Show();
    }
}
public partial class Daughter : Form
{
    private MainForm mum = null;

    public Daughter(MainForm mainForm)
    {
        InitializeComponent();

        mum = mainForm;
    }

    private void Button1_Click(object sender, EventArgs e)
    {
        mum.panel1.Visible = !mum.panel1.Visible;
    }
}
Editováno 26.10.2012 15:23
 
Nahoru Odpovědět
26.10.2012 15:21
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na matesax
David Hartinger:26.10.2012 15:28

Hloupost.

Již jsem psal, že panel nemusí přidávat v kódu a když do něj v designeru natahá kontroly myší, tak to Add samozřejmě vygeneruje IDE za něj včetně všeho co jsi napsal.

Koukám, že se v tom docela ztrácí, tak mu nepiš takovéhle věci. Stačí vše jen naklikat myší a udělat na Formu veřejnou metodu TogglePanel(), tu pak zavolá odkudkoli. Metodu do formu si Neaktivní uživatel snad přidá. Ještě pro jistotu napíšu, že v ní bude něco jako:

panel.Visible = panel.Visible;

Jestli tohle nezafunguje, tak už mu vážně asi nic nepomůže.

Nahoru Odpovědět
26.10.2012 15:28
New kid back on the block with a R.I.P
Avatar
matesax
Tvůrce
Avatar
Odpovídá na David Hartinger
matesax:26.10.2012 15:30

Nezafunguje - nemáš tam negaci... Proč je to mé hloupost? Já již dávno nepoužívám autogeneraci - ale pochybuji, že Dan také...

Když mu to nefunguje, tak to prostě nemůže mít přidané,...

Editováno 26.10.2012 15:33
 
Nahoru Odpovědět
26.10.2012 15:30
Avatar
matesax
Tvůrce
Avatar
Odpovídá na David Hartinger
matesax:26.10.2012 15:35

Jak poznáš v designu, že se ti to přidalo? V kódu na první pohled...

 
Nahoru Odpovědět
26.10.2012 15:35
Avatar
Odpovídá na matesax
Neaktivní uživatel:26.10.2012 15:48

v designu když s tím panelem kousíček pohneš tak se ti posune vše co v něm je spolu s ním

Nahoru Odpovědět
26.10.2012 15:48
Neaktivní uživatelský účet
Avatar
Odpovídá na David Hartinger
Neaktivní uživatel:26.10.2012 15:52

Dal jsem

public void zobrazVse()
        {
            panel3.Visible = true;
        }

...nejede

Nahoru Odpovědět
26.10.2012 15:52
Neaktivní uživatelský účet
Avatar
matesax
Tvůrce
Avatar
Odpovídá na Neaktivní uživatel
matesax:26.10.2012 15:53
public partial class MainForm : Form
{
    public MainForm()
    {
        InitializeComponent(); // zde musíš mít přidání panelu do controls a v něm jeho kontroly

        new Daughter(this).Show();
    }
}

public partial class Daughter : Form
{
    private MainForm mum = null;

    public Daughter(MainForm mainForm)
    {
        InitializeComponent();

        mum = mainForm;
    }

    private void Button1_Click(object sender, EventArgs e)
    {
        mum.panel1.Visible = !mum.panel1.Visible;
    }
}
Editováno 26.10.2012 15:55
 
Nahoru Odpovědět
26.10.2012 15:53
Avatar
Nahoru Odpovědět
26.10.2012 16:15
Neaktivní uživatelský účet
Avatar
matesax
Tvůrce
Avatar
Odpovídá na Neaktivní uživatel
matesax:26.10.2012 16:20

Je to nesmysl - a ještě nastavuješ jen jednu hodnotu...

panel1.Visible = !panel1.Visible;
 
Nahoru Odpovědět
26.10.2012 16:20
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Neaktivní uživatel
David Hartinger:26.10.2012 16:29

Dej tam:

public void PrepniPanel()
{
   panel3.visible = !panel3.visible;
}

Tuhle metodu si dej do kódu formuláře. Pak na instanci toho formu (jak na ní voláš třeba Show() zavoláš PrepniPanel() a on zmizí nebo se zobrazí. To je celé.

matesax: Vykřičník jsem zapomněl, designer slouží k designu formu (nečekaně), proto pokud přes něj děláš aplikaci, měl bys ho používat. Jsi přeci pro ten jednoduchý kód, tak mu tu nevnucuj 100 řádků když může kliknout myší v nástroji, který je pro to ještě určený. Je vidět, že jsi nedělal složitější formulářovou aplikaci, ono by tě to přešlo.

Nahoru Odpovědět
26.10.2012 16:29
New kid back on the block with a R.I.P
Avatar
matesax
Tvůrce
Avatar
Odpovídá na David Hartinger
matesax:26.10.2012 16:32

No z designeru vyjede tolik zbytečností... Pokud dělám s designerem, nedělám s kódem - tak jsem to nenapsal...

Proč to dávat do metody?

Je to tu již snad 6X - takže opravdu nevím, kde hledat problém... :)

Dane pošli projekt - třeba přes Uložto...

Editováno 26.10.2012 16:34
 
Nahoru Odpovědět
26.10.2012 16:32
Avatar
Odpovídá na David Hartinger
Neaktivní uživatel:26.10.2012 16:33

No,tak to mi taky nejede

Nahoru Odpovědět
26.10.2012 16:33
Neaktivní uživatelský účet
Avatar
Odpovídá na David Hartinger
Neaktivní uživatel:26.10.2012 16:40

to je jedno,kašli na to

Nahoru Odpovědět
26.10.2012 16:40
Neaktivní uživatelský účet
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Neaktivní uživatel
David Hartinger:26.10.2012 17:06

Jestli máš problémy s přidáním metody do třídy, tak od toho tu jsou tutoriály. Jinak už fakt nevím :)

Nahoru Odpovědět
26.10.2012 17:06
New kid back on the block with a R.I.P
Avatar
Odpovídá na David Hartinger
Neaktivní uživatel:27.10.2012 10:42

co tam mám blbě ? :(

Nahoru Odpovědět
27.10.2012 10:42
Neaktivní uživatelský účet
Avatar
matesax
Tvůrce
Avatar
Odpovídá na Neaktivní uživatel
matesax:27.10.2012 10:48

Pošli kód (nejlépe Solution přes Uložto) - jinak na to nikdo nepřijde...

Editováno 27.10.2012 10:48
 
Nahoru Odpovědět
27.10.2012 10:48
Avatar
Odpovídá na matesax
Neaktivní uživatel:27.10.2012 10:52

btw. Víš jak si mi radil nabarvit si ten border...no udělal jsem si to prřes Picture box a na pozadí jsem dal barvu, jenže s oknem se nedá hejbat (nečekaně :D ) Jak to udělat aby to šlo ?

Nahoru Odpovědět
27.10.2012 10:52
Neaktivní uživatelský účet
Avatar
matesax
Tvůrce
Avatar
Odpovídá na Neaktivní uživatel
matesax:27.10.2012 11:09

Nedělej to přes PictureBox - nedáváš-li tam obrázek - použij VB graphic -> Toolbox - VisualBasic PowerPacks.

Vyber si prvek, který bude posouvání ovládat a z jeho MouseDown/Click eventu pošli zprávu.

Tedy rozeberu ti to - nejprve si potřebné metody stáhni:

[DllImportAttribute("user32.dll")]
public static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);
[DllImportAttribute("user32.dll")]
public static extern bool ReleaseCapture();

Z jejich názvu lze pochopit o co GO - první pošle zprávu - druhá sejme (zachytí) aktuální stav.

Hodnoty "int Msg, int wParam, int lParam" se dozvíš z manuálu. Tedy:

public const int WM_NCLBUTTONDOWN = 0xA1, HT_CAPTION = 0x2;

[DllImportAttribute("user32.dll")]
public static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);
[DllImportAttribute("user32.dll")]
public static extern bool ReleaseCapture();

Zbývá již jen zachytit událost a poslat zprávu - tedy vytvoříme si na to metodu se parametrem kdo je spouštěč.

public MoveIsEnabled(IntPtr who)
{
    ReleaseCapture();
    SendMessage(who, WM_NCLBUTTONDOWN, HT_CAPTION, 0);
}

Tím pošleme spouštěče události a zprávy o akci, která se má vykonat... Celé se to dá krásně dát do objektu:

using System.Runtime.InteropServices;
using System;

public class MoveIsEnabled
{
    public const int WM_NCLBUTTONDOWN = 0xA1, HT_CAPTION = 0x2;

    [DllImportAttribute("user32.dll")]
    public static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);
    [DllImportAttribute("user32.dll")]
    public static extern bool ReleaseCapture();

    public MoveIsEnabled(IntPtr who)
    {
        ReleaseCapture();
        SendMessage(who, WM_NCLBUTTONDOWN, HT_CAPTION, 0);
    }
}

V místě, kde zachycuješ MouseDown event jen zavoláš tuto metodu s příslušným parametrem:

new MoveIsEnabled(Handle);

Přičemž Handle je vlastnost třídy Form... Něco nejasné? :)

Editováno 27.10.2012 11:10
 
Nahoru Odpovědět
27.10.2012 11:09
Avatar
matesax
Tvůrce
Avatar
Odpovídá na Neaktivní uživatel
matesax:27.10.2012 11:26

Nebo hackni paint - to bude vůbec nejjedodušší a nejlehčí... :)

 
Nahoru Odpovědět
27.10.2012 11:26
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 48 zpráv z 48.