Avatar billede mikkelbm Nybegynder
26. januar 2005 - 08:27 Der er 12 kommentarer og
1 løsning

Disable effekt uden at disable

Hej

Jeg vil høre om der er nogen der ved hvordan man får effekten fra Enable=false på diverse komponenter - f.eks. en button.

Det jeg skal bruge det til er at man kan trykke på en komponent, for så et se ud som om den er disabled - men man skal kunne trykke på den igen og den skal derefter se normal ud igen.

Nogle forslag?
Avatar billede mikkelbm Nybegynder
26. januar 2005 - 08:29 #1
Altså det jeg skal ha' er, at komponenten skal være grayscaled når man trykker første gang, og gå tilbage til normal farve når man igen trykker.
Avatar billede burningice Nybegynder
26. januar 2005 - 10:38 #2
For at en knap skal være inaktiv skal den indeholde ordet disablet i sit tag, altså

<input type="button" value="hej hej" disabled />

Dette feature gælder, så vidt jeg ved, for alle input-types
Avatar billede prec Nybegynder
26. januar 2005 - 11:29 #3
Jeg tror du kan bruge eventet MouseClick istedet for bare Click
Avatar billede mikkelbm Nybegynder
26. januar 2005 - 11:49 #4
cyberfessor >> Det er C# vi snakker om :)

prec >> Det jeg øsnker er, at få en effekt ligesom disable uden dog at komponenten ér disabled...
Avatar billede burningice Nybegynder
26. januar 2005 - 12:56 #5
well... man kan også bruge c# til asp.net

men du har ret, jeg burde gå ud fra at det var winforms du havde gang i.

AAAADMIIIN !!! jeres kategorier SUCKS !!! :P
Avatar billede mikkelbm Nybegynder
26. januar 2005 - 13:04 #6
Nu ved jeg ikke om det var sarkastisk ment, men du kunne jo også prøve at læse spørgsmålet ordentligt! Det jeg leder efter er IKKE hvordan man disabler en knap, men hvordan man får farveeffekten UDEN at disable.
Avatar billede burningice Nybegynder
26. januar 2005 - 13:14 #7
advarsel... MEEEGA HACK !! :)

knappen:

using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;

namespace _584808
{
    /// <summary>
    /// Summary description for Form1.
    /// </summary>
    public class SimulateInactiveButton : System.Windows.Forms.Button
    {
        private bool simulateInactive = false;

        public SimulateInactiveButton() : base()
        {
           
        }

        public bool SimulateInactive
        {
            get { return this.simulateInactive; }
            set { this.simulateInactive = value; }
        }

        protected override void OnPaint(PaintEventArgs e)
        {
            if (this.simulateInactive)
            {
                this.Enabled = false;
                base.OnPaint (e);
                this.Enabled = true;
            }
            else
            {
                base.OnPaint (e);
            }
        }

        protected override void OnEnabledChanged(EventArgs e)
        {
            if (this.simulateInactive)
            {
                return;
            }

            base.OnEnabledChanged (e);
        }
    }
}

Brug af knappen:

using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;

namespace _584808
{
    /// <summary>
    /// Summary description for Form1.
    /// </summary>
    public class Form1 : System.Windows.Forms.Form
    {
        private SimulateInactiveButton button1;
        /// <summary>
        /// Required designer variable.
        /// </summary>
        private System.ComponentModel.Container components = null;

        public Form1()
        {
            //
            // Required for Windows Form Designer support
            //
            InitializeComponent();

            //
            // TODO: Add any constructor code after InitializeComponent call
            //

            this.button1.SimulateInactive = true;
        }

        /// <summary>
        /// Clean up any resources being used.
        /// </summary>
        protected override void Dispose( bool disposing )
        {
            if( disposing )
            {
                if (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 _584808.SimulateInactiveButton();
            this.SuspendLayout();
            //
            // button1
            //
            this.button1.Location = new System.Drawing.Point(72, 56);
            this.button1.Name = "button1";
            this.button1.SimulateInactive = false;
            this.button1.TabIndex = 0;
            this.button1.Text = "button1";
            this.button1.Click += new System.EventHandler(this.button1_Click);
            //
            // Form1
            //
            this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
            this.ClientSize = new System.Drawing.Size(292, 273);
            this.Controls.Add(this.button1);
            this.Name = "Form1";
            this.Text = "Form1";
            this.ResumeLayout(false);

        }
        #endregion

        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.Run(new Form1());
        }

        private void button1_Click(object sender, System.EventArgs e)
        {
            button1.SimulateInactive = !button1.SimulateInactive;
        }
    }
}
Avatar billede burningice Nybegynder
26. januar 2005 - 13:16 #8
der er skam ikke noget galt med dit spørgsmål... det kan sagtens forstås som et asp.net spørgsmål... f.eks. hvordan man kan enable/disable en knap på klienten via javascript.
Avatar billede mikkelbm Nybegynder
28. januar 2005 - 08:14 #9
Jeg lukker her, da der ikke er kommet nogle brugbare svar.

Og jeg synes stadig ikke mit spørgsmål kan misforståes. Jeg forklarer, at jeg ikke skal ha' disabled mine komponenter men blot have farveeffekten deraf - og hvor i alverden kommer javascript ind i billedet?

Det sidste eksempel er for stort et hack til at jeg kan bruge det :)
Avatar billede burningice Nybegynder
28. januar 2005 - 08:59 #10
det er nok fordi du ikke er vant til at arbejde i asp.net Der kan man få alt til at blive til websider. Selv den lille kat nede på gaden; ååh, asp.net... kom her little kitty kitty, og jeg skal udføre noget javascript på dig.
Avatar billede mikkelbm Nybegynder
28. januar 2005 - 09:04 #11
Jeg ved ikke hvad det er du sidder og ryger så tidligt om morgenen, men du forstår tydeligvis ikke hvad det er jeg skriver.

Lad os bare lukke og slukke her!
Avatar billede burningice Nybegynder
28. januar 2005 - 09:30 #12
at jeg opfattede det som et asp.net spørgsmål kan du ikke ændre på. At du så senere kommer og pointerer at det er et c# spørgsmål gør det ikke til mindre asp.net. Jeg er udemærket klar over det er c# (det er c# kategorien), men nu forholder sig bare sådan at asp.net sagtens kan skrive i c#, ligesom at winforms kan skrives i vb.net, så det gør det ikke til mindre asp.net af den grund.
Avatar billede mikkelbm Nybegynder
11. februar 2005 - 17:01 #13
Næh, jeg er skam godt klar over at asp.net kan skrives i c#. MEN - det har stadig intet med mit spørgsmål at gøre!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester