none
Visual C# 2010 Express

    Dotaz

  • Zdravím,

    mám problém s tímto softem. V projektu vytvořím tlačítko a napíšu k němu zdroják, ale po spuštění vůbec nefunguje. Schválně jsem to napsal přesně podle příručky, kde se akorát přepíše text v textBoxu. Tlačítko btnOK původně sloužilo k jinému účelu, proto ten jeho název.

    namespace Pokus
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
            private void btnOK_Click(object sender, EventArgs e)
            {
                textBox1.Text = "Konečně...";
            }
        }
    }

    Na netu jsem nic nenašel, fakt už si nevím rady.

    Nesetkal jste se s tím někdo?

    26. února 2012 20:57

Odpovědi

  • Schválně jsem si kvůli tomu vytvořil čistý prázdný projekt (File -> New project -> Windows Form Application), vložil jsem do něj jeden Button a jeden TextBox. V TextBoxu jsem změnil položku Tetx na "Implicitní text". Poklikal jsem na tlačítko a doplnil řádek kódu. Toto je kód tak jak ho chápeš ty:

    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 WindowsFormsApplication1
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }

            private void button1_Click(object sender, EventArgs e)
            {
                textBox1.Text = "Tlačítko stisknuto";
            }
        }
    }

    Funguje jak má. Po spuštění je v TextBoxu implicitní text "Implicitní text". Po stiktnutí tlačítka se objeví text "Tlačítko stisknuto".

    PS: Jak postupuješ ty, aby to NEFUNGOVALO?


    JCH

    • Upravený Jan Chaloupek 27. února 2012 13:32
    • Označen jako odpověď Slepec 27. února 2012 16:19
    27. února 2012 13:30

Všechny reakce

  • Dobrý den,

    protože tu není celý projekt může jen hádat.

    .

    Máš viditelný ten textBox (aby bylo možno vidět změnu textu)?

    Nemáš přiřazenou k tlačítku jinou implicitní funkci (pro kontrolu vytvoř nové čisté tlačítko a funkci přepiš do něj)?


    JCH

    • Upravený Jan Chaloupek 27. února 2012 14:17 Zdůraznění "jinou funkci"
    27. února 2012 7:17
  • Ano, je viditelný. Toto je jen zkušební projekt, který neobsahuje nic. Jen tlačítko a textbox. Žádný jiný kód jsem do něj nezadal, jen to co mám v úvodu - právě kvůli testování.
    27. února 2012 12:46
  • Schválně jsem si kvůli tomu vytvořil čistý prázdný projekt (File -> New project -> Windows Form Application), vložil jsem do něj jeden Button a jeden TextBox. V TextBoxu jsem změnil položku Tetx na "Implicitní text". Poklikal jsem na tlačítko a doplnil řádek kódu. Toto je kód tak jak ho chápeš ty:

    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 WindowsFormsApplication1
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }

            private void button1_Click(object sender, EventArgs e)
            {
                textBox1.Text = "Tlačítko stisknuto";
            }
        }
    }

    Funguje jak má. Po spuštění je v TextBoxu implicitní text "Implicitní text". Po stiktnutí tlačítka se objeví text "Tlačítko stisknuto".

    PS: Jak postupuješ ty, aby to NEFUNGOVALO?


    JCH

    • Upravený Jan Chaloupek 27. února 2012 13:32
    • Označen jako odpověď Slepec 27. února 2012 16:19
    27. února 2012 13:30
  • Dělal jsem to stejně. Jen ten kód tlačítka jsem psal celý ručně (nepoklepal jsem na tlačítko). Mezi těmito postupy by neměl být rozdíl, nebo se pletu?
    27. února 2012 13:50
  • Neměl by být. Zkus. Ale jak jsi docílil toho že ta funkce existuje? Ta funkce se musí nejprve nějak založit a přidělit kdy se bude volat. To je to, co jsem se ti snažil vysvětlit. Toto NENÍ celý kód aplikace.

    Fungovalo to studio vůbec někdy? Nebyl nějaký problém s instalací?

    .

    Toto je kód v souboru Form1.Designer.cs:

    namespace WindowsFormsApplication1
    {
        partial class Form1
        {
            /// <summary>
            /// Required designer variable.
            /// </summary>
            private System.ComponentModel.IContainer components = null;
    
            /// <summary>
            /// Clean up any resources being used.
            /// </summary>
            /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
            protected override void Dispose(bool disposing)
            {
                if (disposing && (components != null))
                {
                    components.Dispose();
                }
                base.Dispose(disposing);
            }
    
            #region Windows Form Designer generated code
    
            /// <summary>
            /// Required method for Designer support - do not modify
            /// the contents of this method with the code editor.
            /// </summary>
            private void InitializeComponent()
            {
                this.button1 = new System.Windows.Forms.Button();
                this.textBox1 = new System.Windows.Forms.TextBox();
                this.SuspendLayout();
                // 
                // button1
                // 
                this.button1.Location = new System.Drawing.Point(154, 159);
                this.button1.Name = "button1";
                this.button1.Size = new System.Drawing.Size(90, 37);
                this.button1.TabIndex = 0;
                this.button1.Text = "button1";
                this.button1.UseVisualStyleBackColor = true;
                this.button1.Click += new System.EventHandler(this.button1_Click);
                // 
                // textBox1
                // 
                this.textBox1.Location = new System.Drawing.Point(115, 52);
                this.textBox1.Name = "textBox1";
                this.textBox1.Size = new System.Drawing.Size(128, 20);
                this.textBox1.TabIndex = 1;
                this.textBox1.Text = "Implicitní text";
                // 
                // Form1
                // 
                this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
                this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
                this.ClientSize = new System.Drawing.Size(284, 262);
                this.Controls.Add(this.textBox1);
                this.Controls.Add(this.button1);
                this.Name = "Form1";
                this.Text = "Form1";
                this.Load += new System.EventHandler(this.Form1_Load);
                this.ResumeLayout(false);
                this.PerformLayout();
    
            }
    
            #endregion
    
            private System.Windows.Forms.Button button1;
            private System.Windows.Forms.TextBox textBox1;
        }
    }

    .

    Důležitý je tento řádek. Ten zařídí že se funkce "button1_Click" POUŽIJE při stisku tlačítka:

    this.button1.Click += new System.EventHandler(this.button1_Click);


    JCH

    27. února 2012 14:05
  • Samozřejmě, že to není celý kód. S instalací jsem problém neměl, používám ho ale poprvé. Předtím jsem měl verzi 2008, kde byla ale jiná struktura kódu. Na toto si teprve zvykám...
    27. února 2012 14:34
  • Dobrý den,

    a pomohlo doplnění toho řádku nebo poklikat na tlačítko aby to fungvalo?


    JCH

    27. února 2012 16:08
  • Ten řádek jsem tam měl. Zkusil jsem to všechno znovu a s tím poklepáním to funguje. Budu si na tento způsob muset zvyknout, vždy jsem si to psal sám (možná špatný důsledek samostudia).

    Je to sice jednodužší, ale člověk ztrácí přehled co se kde doplňuje...

    Každopádně moc děkuji

    27. února 2012 16:18