elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Hola tengo una pregunta sobre C#
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Hola tengo una pregunta sobre C#  (Leído 3,041 veces)
NetFire97

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Hola tengo una pregunta sobre C#
« en: 8 Septiembre 2013, 05:36 am »

Lo que quiero hacer es limitar la selección de un GroupBox
en los cuales tengo 3 elementos,pero cuando seleccione 2 se des habiliten los demas.
por favor me pueden ayudar ^_^


En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.878



Ver Perfil
Re: Hola tengo una pregunta sobre C#
« Respuesta #1 en: 8 Septiembre 2013, 08:26 am »

Hola

en los cuales tengo 3 elementos

...De que elementos se tratan, o tenemos que adivinarlo xD?.

Bueno, como no has proporcionado la suficiente información te muestro mi solución en VB.NET, requiere el uso de Framework 4.0 3.5 por las extensiones LINQ:

Básicamente lo que tienes que hacer es recorrer la colección de controles del contenedor y comprobar la cantidad de esos controles que están "seleccionados" para "deshabilitar" el resto de controles.

Código
  1.    Private CheckBoxes() As CheckBox
  2.    Private CheckIt As Boolean
  3.  
  4.    Private Sub CheckBoxes_CheckedChanged(sender As Object, e As EventArgs) _
  5.    Handles CheckBox1.CheckedChanged, CheckBox2.CheckedChanged, _
  6.            CheckBox3.CheckedChanged, CheckBox4.CheckedChanged
  7.  
  8.        CheckBoxes = Me.GroupBox1.Controls.OfType(Of CheckBox)().ToArray
  9.  
  10.        Select Case CheckBoxes.Where(Function(x) x.Checked).Count
  11.            Case Is >= 2 : CheckIt = False
  12.            Case Is < 2 : CheckIt = True
  13.        End Select
  14.  
  15.        For Each ctrl As CheckBox In CheckBoxes.Where(Function(x) Not x.Checked)
  16.            ctrl.Enabled = CheckIt
  17.        Next
  18.  
  19.        CheckBoxes = Nothing
  20.  
  21.    End Sub


Aquí tienes una traducción al vuelo para C#,
convierte el Switch a un par de IF's y te debería funcionar

Código:
si Checkeds es igual o mayor que 2...
  Enable = false
si checkeds es menor que 2...
  Enable = true


Código
  1.  
  2. private void CheckBoxes_CheckedChanged(object sender, EventArgs e)
  3. {
  4. dynamic Controls = this.GroupBox1.Controls.OfType<CheckBox>();
  5. dynamic Checkeds = Controls.Where(x => x.Checked).Count;
  6. bool Enable = false;
  7.  
  8. switch (Checkeds) {
  9. case  // ERROR: Case labels with binary operators are unsupported : GreaterThanOrEqual
  10. 2:
  11. Enable = false;
  12. break;
  13. case  // ERROR: Case labels with binary operators are unsupported : LessThan
  14. 2:
  15. Enable = true;
  16. break;
  17. }
  18.  
  19. foreach (CheckBox ctrl in Controls.Where(x => !x.Checked)) {
  20. ctrl.Enabled = Enable;
  21. }
  22.  
  23. }
  24.  
  25. //=======================================================
  26. //Service provided by Telerik (www.telerik.com)
  27. //Conversion powered by NRefactory.
  28. //Twitter: @telerik
  29. //Facebook: facebook.com/telerik
  30. //=======================================================

Saludos!


« Última modificación: 9 Septiembre 2013, 08:37 am por EleKtro H@cker » En línea



Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: Hola tengo una pregunta sobre C#
« Respuesta #2 en: 8 Septiembre 2013, 23:17 pm »

Bueno, como no has proporcionado la suficiente información te muestro mi solución en VB.NET, requiere el uso de Framework 4.0 por las extensiones LINQ
3.5 :P



[ELEKTRO] Gracias por la correción NovLucker!
« Última modificación: 9 Septiembre 2013, 08:51 am por EleKtro H@cker » En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
NetFire97

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Re: Hola tengo una pregunta sobre C#
« Respuesta #3 en: 9 Septiembre 2013, 01:48 am »

Pues haci es como lo tengo:
Código
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using System.Windows.Forms;
  10.  
  11. namespace Supermercado
  12. {
  13.    public partial class Supermercado : Form
  14.    {
  15.        public Supermercado()
  16.        {
  17.            InitializeComponent();
  18.        }
  19.  
  20.        private void radioButton2_CheckedChanged(object sender, EventArgs e)
  21.        {
  22.            pastas.Enabled = true;
  23.            refresco.Enabled = true;
  24.            te.Enabled = true;
  25.  
  26.        }
  27.  
  28.        private void checkBox1_CheckedChanged(object sender, EventArgs e)
  29.        {
  30.  
  31.        }
  32.  
  33.        private void pescado_CheckedChanged(object sender, EventArgs e)
  34.        {
  35.            pastas.Enabled = false;
  36.            refresco.Enabled = false;
  37.            te.Enabled = false;
  38.        }
  39.  
  40.        private void aceptar_Click(object sender, EventArgs e)
  41.        {
  42.            if (pescado.Checked)
  43.                txt.Text = "carne de pescado";
  44.  
  45.            if(hondureño.Checked)
  46.                txt.Text = "carne de hondureño";
  47.  
  48.            if (pollo.Checked)
  49.                txt.Text = "carne de pollo";
  50.  
  51.  
  52.            if (letras.Checked)
  53.                txt.Text =txt.Text + " + sopa de letras";
  54.  
  55.            if (coditos.Checked)
  56.                txt.Text = txt.Text + " + sopa de coditos";
  57.  
  58.            if (numeros.Checked)
  59.                txt.Text = txt.Text + " + sopa de números";
  60.  
  61.            if (zanahorias.Checked)
  62.                txt.Text = txt.Text + " + zanahorias";
  63.  
  64.            if (brocoli.Checked)
  65.                txt.Text = txt.Text + " + brocoli";
  66.  
  67.            if (aselgas.Checked)
  68.                txt.Text = txt.Text + " + aselgas";
  69.  
  70.            if (refresco.Checked)
  71.                txt.Text = txt.Text + " + refresco";
  72.  
  73.            if (agua.Checked)
  74.                txt.Text = txt.Text + " + agua";
  75.  
  76.            if (te.Checked)
  77.                txt.Text = txt.Text + " + te";
  78.  
  79.            if (pay.Checked)
  80.                txt.Text = txt.Text + " + pay";
  81.  
  82.            if (pastel.Checked)
  83.                txt.Text = txt.Text + " + pastel";
  84.  
  85.            if (flan.Checked)
  86.                txt.Text = txt.Text + " + flan";
  87.  
  88.        }
  89.  
  90.        private void pollo_CheckedChanged(object sender, EventArgs e)
  91.        {
  92.            pastas.Enabled = true;
  93.            refresco.Enabled = true;
  94.            te.Enabled = true;
  95.      }
  96.  }
  97. }
  98.  
  99. [img][img]
« Última modificación: 9 Septiembre 2013, 02:13 am por simorg » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
hola a Todos. tengo pregunta de Xbox
Juegos y Consolas
clioport 2 2,982 Último mensaje 25 Agosto 2005, 20:36 pm
por clioport
Hola una pregunta sobre digital +
Electrónica
j.garcia2 0 2,872 Último mensaje 30 Julio 2008, 23:16 pm
por j.garcia2
Hola Gente Soy Nuevo. Tengo Una Pregunta
Dudas Generales
Wolverine41 6 4,848 Último mensaje 2 Diciembre 2011, 01:51 am
por .:UND3R:.
Hola , tengo una pregunta.
Bugs y Exploits
Deterox 6 4,213 Último mensaje 4 Marzo 2015, 09:07 am
por Deterox
Hola, tengo una pregunta respecto a los malwares
Seguridad
artislmnewer 2 2,503 Último mensaje 10 Septiembre 2021, 15:31 pm
por artislmnewer
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines