Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: Meta en 27 Diciembre 2015, 03:36 am



Título: Mostrar nombre de los datos en C#.
Publicado por: Meta en 27 Diciembre 2015, 03:36 am
Hola:

En este código muestra los nombres de la configuración. Teniendo el código completo hecho, quiero que muestre un resumen en el componente statusStrip como muestra abajo.

(http://www.subeimagenes.com/img/retretyry-1580264.png)

Se tiene que mostrar como indica abajo.
(http://www.subeimagenes.com/img/retretyry-1580265.png)

Pongo el código funcional de la configuración del puerto serie, solo falta que muestra la información en el statusStrip que no se hacerlo, siempre con fallos y llevo tres días.
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. using System.IO.Ports; // No olvidar.
  12.  
  13. namespace Config_Puerto_Serie
  14. {
  15.    public partial class Form1 : Form
  16.    {
  17.        // Variables.
  18.        bool Conectado;
  19.  
  20.        public Form1()
  21.        {
  22.            InitializeComponent();
  23.        }
  24.  
  25.        private void Form1_Load(object sender, EventArgs e)
  26.        {
  27.            // Añado los puertos disponible en el PC con SerialPort.GetPortNames() al combo
  28.            comboBox_Puerto.DataSource = SerialPort.GetPortNames();
  29.  
  30.            // Añade los bits de datos.
  31.            comboBox_Bits_de_datos.Items.Add("5");
  32.            comboBox_Bits_de_datos.Items.Add("6");
  33.            comboBox_Bits_de_datos.Items.Add("7");
  34.            comboBox_Bits_de_datos.Items.Add("8");
  35.            comboBox_Bits_de_datos.SelectedIndex = 3;
  36.  
  37.            // Añade los bits de parada.
  38.            foreach (string Bit_Parada in Enum.GetNames(typeof(StopBits)))
  39.            {
  40.                comboBox_Bits_de_parada.Text = "Two";
  41.                comboBox_Bits_de_parada.Items.Add(Bit_Parada);
  42.            }
  43.  
  44.            // Añade la Paridad al comboBox.
  45.            foreach (string Paridad in Enum.GetNames(typeof(Parity)))
  46.            {
  47.                comboBox_Paridad.Text = "None";
  48.                comboBox_Paridad.Items.Add(Paridad);
  49.            }
  50.  
  51.            // Añade el control de flujo.
  52.            foreach (string Flujo in Enum.GetNames(typeof(Handshake)))
  53.            {
  54.                comboBox_Control_de_flujo.Text = "None";
  55.                comboBox_Control_de_flujo.Items.Add(Flujo);
  56.            }
  57.  
  58.  
  59.            textBox_Read_time_out.Text = "-1";
  60.            textBox_Write_time_out.Text = "-1";
  61.  
  62.            comboBox_DiscardNull.Items.Add("False");
  63.            comboBox_DiscardNull.Items.Add("True");
  64.            comboBox_DiscardNull.SelectedIndex = 0;
  65.  
  66.            comboBox_DtrEnable.Items.Add("False");
  67.            comboBox_DtrEnable.Items.Add("True");
  68.            comboBox_DtrEnable.SelectedIndex = 0;
  69.  
  70.            comboBox_RtsEnable.Items.Add("False");
  71.            comboBox_RtsEnable.Items.Add("True");
  72.            comboBox_RtsEnable.SelectedIndex = 0;
  73.  
  74.            textBox_ParityReplace.Text = "63";
  75.  
  76.            textBox_ReceivedBytesTrheshold.Text = "1";
  77.  
  78.            textBox_ReadBufferSize.Text = "4096";
  79.            textBox_WriteBufferSize.Text = "2048";
  80.  
  81.            // Añade puertos disponibles físicos  y virtuales.
  82.            serialPort1.BaudRate = (int)Int16.Parse(comboBox_Bit_por_segundo.Text.ToString());
  83.            serialPort1.PortName = comboBox_Puerto.Text.ToString();
  84.            serialPort1.DataBits = (int)Int16.Parse(comboBox_Bits_de_datos.Text.ToString());
  85.            serialPort1.Parity = (Parity)Enum.Parse(typeof(Parity), comboBox_Paridad.Text.ToString());
  86.            serialPort1.StopBits = (StopBits)Enum.Parse(typeof(StopBits), comboBox_Bits_de_parada.Text.ToString());
  87.            serialPort1.Handshake = (Handshake)Enum.Parse(typeof(Handshake), comboBox_Control_de_flujo.Text.ToString());
  88.  
  89.            // Más configuraciones.
  90.            serialPort1.ReadTimeout = (int)Int16.Parse(textBox_Read_time_out.Text.ToString());
  91.            serialPort1.WriteTimeout = (int)Int16.Parse(textBox_Write_time_out.Text.ToString());
  92.            serialPort1.DiscardNull = Convert.ToBoolean(comboBox_DiscardNull.Text.ToString());
  93.            serialPort1.DtrEnable = Convert.ToBoolean(comboBox_DtrEnable.Text.ToString());
  94.            serialPort1.ParityReplace = Convert.ToByte(textBox_ParityReplace.Text.ToString());
  95.            serialPort1.RtsEnable = Convert.ToBoolean(comboBox_RtsEnable.Text.ToString());
  96.            serialPort1.ReadBufferSize = (int)Int16.Parse(textBox_ReadBufferSize.Text.ToString());
  97.            serialPort1.WriteBufferSize = (int)Int16.Parse(textBox_WriteBufferSize.Text.ToString());
  98.        }
  99.  
  100.        private void button_Conectar_Puerto_Click(object sender, EventArgs e)
  101.        {
  102.            if(!serialPort1.IsOpen)
  103.              {
  104.  
  105.                 serialPort1.Open();
  106.                 Conectado = true; // Cariable de clase boleana para controlar si el puero lo abro yo o no.
  107.                 button_Conectar_Puerto.Text = "DESCONECTAR";
  108.                 button_Conectar_Puerto.BackColor = Color.Green;
  109.              }
  110.  
  111.            else
  112.              {
  113.                if (Conectado)
  114.                  {
  115.                    serialPort1.Close();
  116.                    Conectado = false;
  117.                    button_Conectar_Puerto.Text = "CONECTAR";
  118.                    button_Conectar_Puerto.BackColor = Color.Red;
  119.                  }
  120.                else
  121.                  {
  122.                    // Esta ocupado por otro programa muestra mensaje y no hacer nada
  123.                      label_Mensajes_de_error.Text = "Puerto ocupado o no lo encuentra.";
  124.                  }
  125.               }
  126.        }
  127.  
  128.        // Detecta USB o puerto serie virtual cuando lo conecta y desconecta del cable.
  129.        protected override void WndProc(ref Message USB)
  130.        {
  131.            if (USB.Msg == 0x219)
  132.            {
  133.                comboBox_Puerto.DataSource = SerialPort.GetPortNames();
  134.            }
  135.  
  136.            base.WndProc(ref USB); // Detecta si hay cambios en el usb y si los hay los refleja.
  137.        }
  138.    }
  139. }
  140.  

Felices navidades.


Título: Re: Mostrar nombre de los datos en C#.
Publicado por: Eleкtro en 27 Diciembre 2015, 21:15 pm
Teniendo el código completo hecho, quiero que muestre un resumen en el componente statusStrip

no se hacerlo, siempre con fallos y llevo tres días.

Me cuesta creer que lleves 3 días para hacer esto:
Código
  1. this.ToolStripStatusLabel1.Text = "Resumen...";

Explica cual es el problema real que encuentras.

Saludos


Título: Re: Mostrar nombre de los datos en C#.
Publicado por: Meta en 28 Diciembre 2015, 01:33 am
Hola:

Me refiero que muestre esto así.

9600 8-N-2

Saludos.


Título: Re: Mostrar nombre de los datos en C#.
Publicado por: Eleкtro en 28 Diciembre 2015, 04:35 am
Bien, ¿y el problema cual es?.

Código:
String.Format()


Título: Re: Mostrar nombre de los datos en C#.
Publicado por: El Benjo en 28 Diciembre 2015, 06:18 am
Creo que lo Elektro quiso decir es que no se muetra la parte del código en la que intentas que el acomodar ese texto en el label y por ende no entendemos qué es lo que estás haciendo mal.

Por mi parte te puedo decir que lo que puedes hacer es:

Código
  1. private void MostrarConfiguracion()
  2. {
  3.  ToolStripLabel.Text = ComboBoxBitsPorSegundo.value.ToString() + " ";
  4.  ToolStripLabel.Text += ComboBoxBitsDeDatos.value.ToString() + "-";
  5.  if(ComboBoxParidad.value == "None")
  6.  {
  7.    ToolStripLabel.Text += "N-";
  8.  }else{
  9.    ToolStripLabel.Text += "S-"; //Aquí quizás quieras otro compartamiento. Lo ajustas tú.
  10.  }
  11. // Y aquí sigues el proceso para indicar los bits de paridad seleccionados. No sé las opciones que tiene tu combobox.
  12. }
  13.  

Ahora, cada que cambie el valor de uno de los controles que intervienen en la creación del resumen llamas a esta función. Espero que con ese ejemplo ya sepas cómo hacer las cosas y si no, entonces muéstranos lo que hayas intentado hacer para ver los errores. Saludos y feliz fin de año.