private void AttackOptionsControl_Load(object sender, EventArgs e)
        {
            if (this.DesignMode)
            {
                return;
            }

            //
            // Set up radio buttons tags
            radioButtonAttackMethodHttp.Tag     = AttackMethod.HTTP;
            radioButtonAttackMethodTcp.Tag      = AttackMethod.TCP;
            radioButtonAttackMethodUdp.Tag      = AttackMethod.UDP;
            radioButtonAttackMethodReCoil.Tag   = AttackMethod.ReCoil;
            radioButtonAttackMethodSlowLoic.Tag = AttackMethod.SlowLOIC;
            radioButtonAttackMethodIcmp.Tag     = AttackMethod.ICMP;

            radioButtonHttpMethodHead.Tag = HttpMethod.Head;
            radioButtonHttpMethodGet.Tag  = HttpMethod.Get;
            radioButtonHttpMethodPost.Tag = HttpMethod.Post;

            radioButtonProxyNone.Tag    = ProxyConnectionType.None;
            radioButtonProxyRandom.Tag  = ProxyConnectionType.Random;
            radioButtonProxyChained.Tag = ProxyConnectionType.Chained;
            //
            //

            new FluentControlActivator(AttackMethod.HTTP)
            .Disable(radioButtonHttpMethodPost).Check(radioButtonHttpMethodGet)
            .Disable(textFieldSocketsPerThread)
            .Disable(checkBoxAppendRandomCharactersToMessage);

            new FluentControlActivator(AttackMethod.TCP)
            .Disable(panelHttpMethod).Disable(checkBoxUseGzip)
            .Disable(textFieldSocketsPerThread)
            .Disable(checkBoxAppendRandomCharactersToUrl);

            new FluentControlActivator(AttackMethod.UDP)
            .Disable(panelHttpMethod).Disable(checkBoxUseGzip)
            .Disable(textFieldSocketsPerThread)
            .Disable(checkBoxAppendRandomCharactersToUrl)
            .Disable(panelProxy);

            new FluentControlActivator(AttackMethod.ReCoil)
            .Disable(panelHttpMethod)
            .Disable(checkBoxAppendRandomCharactersToMessage)
            .Disable(panelProxy);

            new FluentControlActivator(AttackMethod.SlowLOIC)
            .Disable(radioButtonHttpMethodHead).Check(radioButtonHttpMethodPost)
            .Disable(checkBoxWaitForReply)
            .Disable(checkBoxAppendRandomCharactersToMessage);

            new FluentControlActivator(AttackMethod.ICMP)
            .Disable(panelHttpMethod)
            .Disable(checkBoxWaitForReply)
            .Disable(checkBoxAppendRandomCharactersToUrl)
            .Disable(panelProxy);

            FluentControlActivator.Activate(AttackMethod.HTTP);
        }
        private void radioButtonAttackMethod_CheckedChanged(object sender, EventArgs e)
        {
            var button = sender as RadioButton;

            var attackProtocol = (AttackMethod)button.Tag;

            FluentControlActivator.Set(attackProtocol, button.Checked);
        }