none
Cambiar codigo de C# a Visual RRS feed

  • Pregunta

  • Hola buenas noches, tengo un problema al tratar de pasar un codigo de C# a visual no logro hacer que me funcione (soy nuevo en el tema)

    el codigo es el siguiente: 

      private void selectodos_CheckedChanged(object sender, EventArgs e)
            {
                foreach (Control c in this.Controls)
                {
                    if (c is CheckBox)
                    {
                        if (selectodos.Checked)
    
                            ((CheckBox)c).Checked = true;
                        else
                            ((CheckBox)c).Checked = false;
                    }
                }
            }
    
            private void timer1_Tick(object sender, EventArgs e)
            {
                
                string dia = Application.CurrentCulture.DateTimeFormat.GetDayName(DateTime.Now.DayOfWeek).ToString();
                string hora = DateTime.Now.Hour.ToString("00");
                string minutos = DateTime.Now.Minute.ToString("00");
    
                foreach(Control c in this.Controls)
                {if(c is CheckBox)
                    {
                        if (dia == c.Text.ToLower().ToString() && minutos == tbmin.Text.ToString() && hora == tbhora.Text.ToString())
                        {
                           .............
                            }
    

    lo que hace es que hay 8 checkbox uno con cada dia de la semana y uno con seleccionar todos y luego verificar si el checkbox seleccionado coincide con el dia de la semana del sistema, he tratado hacer lo mismo pero en visual y no logro hacerlo, si me podrian ayudar se los agradeceria grandemente.

    domingo, 11 de noviembre de 2018 22:42

Todas las respuestas

  • Hola. Puedes mostrar el código adaptado? Hay muchos conversores Vb to C#.

    En este caso el resultado es

    Class SurroundingClass
        Private Sub selectodos_CheckedChanged(ByVal sender As Object, ByVal e As EventArgs)
            For Each c As Control In Me.Controls
    
                If TypeOf c Is CheckBox Then
    
                    If selectodos.Checked Then
                        (CType(c, CheckBox)).Checked = True
                    Else
                        (CType(c, CheckBox)).Checked = False
                    End If
                End If
            Next
        End Sub
    
        Private Sub timer1_Tick(ByVal sender As Object, ByVal e As EventArgs)
            Dim dia As String = Application.CurrentCulture.DateTimeFormat.GetDayName(DateTime.Now.DayOfWeek).ToString()
            Dim hora As String = DateTime.Now.Hour.ToString("00")
            Dim minutos As String = DateTime.Now.Minute.ToString("00")
    
            For Each c As Control In Me.Controls
    
                If TypeOf c Is CheckBox Then
    
                    If dia = c.Text.ToLower().ToString() AndAlso minutos = tbmin.Text.ToString() AndAlso hora = tbhora.Text.ToString() Then
                    End If
                End If
            Next
        End Sub
    End Class


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    • Propuesto como respuesta Pablo Rubio jueves, 15 de noviembre de 2018 15:59
    domingo, 11 de noviembre de 2018 22:58
  • Hola sergio muchas gracias por tu rapida respuestam Si el codigo que mostre es el que deseo transformar y basicamente deseo que haga lo mismo, comparar el checkbox seleccionado con el dia de la semana del sistema,  lo he pasado por varias web que hacen la conversion pero al momento de probarlo no funciona por ejemplo las lineas

    For Each c As Control In Me.Controls

                If TypeOf c Is CheckBox Then

                    If cbselectodos_jar.Checked Then
                        CType(c, CheckBox).Checked = True
                    Else
                        CType(c, CheckBox).Checked = False
                    End If
                End If
            Next

    alli deberia marcarse o desmarcarse todos los checkbox no lo hace, por eso la duda

    domingo, 11 de noviembre de 2018 23:19
  • Hola. Qué no te funciona? Leyendo el código lo que se está haciendo es.

    1.- recorrer los controles del formulario. (ojo, solo a nivel hijo de formulario, si hay un control contenedor de controles, lo controles "nietos" no se actualizan)

    2.- si el control es un CheckBox se mira si cbselectodos está marcado, si lo está se marca el checkbox, sino, se desmarca, da igual qué valor previo tenía.

    Es correcto? 


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos



    • Editado Sergio Parra domingo, 11 de noviembre de 2018 23:42
    domingo, 11 de noviembre de 2018 23:40
  • lo que busco es que al marcar el checkbox cbselectodos se marquen los demas igual al desmarcarlo se desmarquen los demas.

    ademas buscaba que se verificara si el dia de la semana (lunes, martes, miercoles.....) era igual al dia del sistema

    es decir como una alarma, donde verifico la hora, el dia de la semana y sin son iguales la alarma se dispara.

    aca anexo el codigo completo original en c#

    pero por lo que veo en este codigo no se hace la verificacion de los dias de la semana

    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 Alarma
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
                song.CreateControl();
            }
            AxWMPLib.AxWindowsMediaPlayer song = new AxWMPLib.AxWindowsMediaPlayer();
            string ruta = string.Empty;
            string archivo = string.Empty;
    
    
            private void btSelecCancion_Click(object sender, EventArgs e)
            {
                OpenFileDialog ofd = new OpenFileDialog();
    
                if (ofd.ShowDialog() == DialogResult.OK)
                {
                    archivo = ofd.SafeFileName;
                    ruta = ofd.FileName;
                    song.URL = ruta;
                    song.settings.setMode("loop", true);
                    song.Ctlcontrols.stop();
                    lbcancion.Text = archivo;
                }
            }
    
            private void selectodos_CheckedChanged(object sender, EventArgs e)
            {
                foreach (Control c in this.Controls)
                {
                    if (c is CheckBox)
                    {
                        if (selectodos.Checked)
    
                            ((CheckBox)c).Checked = true;
                        else
                            ((CheckBox)c).Checked = false;
                    }
                }
            }
    
            private void timer1_Tick(object sender, EventArgs e)
            {
                
                string dia = Application.CurrentCulture.DateTimeFormat.GetDayName(DateTime.Now.DayOfWeek).ToString();
                string hora = DateTime.Now.Hour.ToString("00");
                string minutos = DateTime.Now.Minute.ToString("00");
    
                foreach(Control c in this.Controls)
                {if(c is CheckBox)
                    {
                        if (dia == c.Text.ToLower().ToString() && minutos == tbmin.Text.ToString() && hora == tbhora.Text.ToString())
                        {
                            try
                            {
                                song.Ctlcontrols.play();
                            }
                            catch (Exception ex)
                            {
                                MessageBox.Show(ex.Message);
                            }
    
                        }
                    }
                }
            }
    
            private void btstop_Click(object sender, EventArgs e)
            {
    
            }
    
            private void lbcancion_Click(object sender, EventArgs e)
            {
    
            }
    
            private void Form1_Load(object sender, EventArgs e)
            {
    
            }
        }
    }

    • Propuesto como respuesta Pablo Rubio jueves, 15 de noviembre de 2018 15:59
    domingo, 11 de noviembre de 2018 23:59