Mostrar nombre de los datos en C#.

Iniciado por Meta, 27 Diciembre 2015, 03:36 AM

0 Miembros y 1 Visitante están viendo este tema.

Meta

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.



Se tiene que mostrar como indica abajo.


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 (csharp) [Seleccionar]
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

using System.IO.Ports; // No olvidar.

namespace Config_Puerto_Serie
{
    public partial class Form1 : Form
    {
        // Variables.
        bool Conectado;

        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            // Añado los puertos disponible en el PC con SerialPort.GetPortNames() al combo
            comboBox_Puerto.DataSource = SerialPort.GetPortNames();

            // Añade los bits de datos.
            comboBox_Bits_de_datos.Items.Add("5");
            comboBox_Bits_de_datos.Items.Add("6");
            comboBox_Bits_de_datos.Items.Add("7");
            comboBox_Bits_de_datos.Items.Add("8");
            comboBox_Bits_de_datos.SelectedIndex = 3;

            // Añade los bits de parada.
            foreach (string Bit_Parada in Enum.GetNames(typeof(StopBits)))
            {
                comboBox_Bits_de_parada.Text = "Two";
                comboBox_Bits_de_parada.Items.Add(Bit_Parada);
            }

            // Añade la Paridad al comboBox.
            foreach (string Paridad in Enum.GetNames(typeof(Parity)))
            {
                comboBox_Paridad.Text = "None";
                comboBox_Paridad.Items.Add(Paridad);
            }

            // Añade el control de flujo.
            foreach (string Flujo in Enum.GetNames(typeof(Handshake)))
            {
                comboBox_Control_de_flujo.Text = "None";
                comboBox_Control_de_flujo.Items.Add(Flujo);
            }

           
            textBox_Read_time_out.Text = "-1";
            textBox_Write_time_out.Text = "-1";

            comboBox_DiscardNull.Items.Add("False");
            comboBox_DiscardNull.Items.Add("True");
            comboBox_DiscardNull.SelectedIndex = 0;

            comboBox_DtrEnable.Items.Add("False");
            comboBox_DtrEnable.Items.Add("True");
            comboBox_DtrEnable.SelectedIndex = 0;

            comboBox_RtsEnable.Items.Add("False");
            comboBox_RtsEnable.Items.Add("True");
            comboBox_RtsEnable.SelectedIndex = 0;

            textBox_ParityReplace.Text = "63";

            textBox_ReceivedBytesTrheshold.Text = "1";

            textBox_ReadBufferSize.Text = "4096";
            textBox_WriteBufferSize.Text = "2048";

            // Añade puertos disponibles físicos  y virtuales.
            serialPort1.BaudRate = (int)Int16.Parse(comboBox_Bit_por_segundo.Text.ToString());
            serialPort1.PortName = comboBox_Puerto.Text.ToString();
            serialPort1.DataBits = (int)Int16.Parse(comboBox_Bits_de_datos.Text.ToString());
            serialPort1.Parity = (Parity)Enum.Parse(typeof(Parity), comboBox_Paridad.Text.ToString());
            serialPort1.StopBits = (StopBits)Enum.Parse(typeof(StopBits), comboBox_Bits_de_parada.Text.ToString());
            serialPort1.Handshake = (Handshake)Enum.Parse(typeof(Handshake), comboBox_Control_de_flujo.Text.ToString());

            // Más configuraciones.
            serialPort1.ReadTimeout = (int)Int16.Parse(textBox_Read_time_out.Text.ToString());
            serialPort1.WriteTimeout = (int)Int16.Parse(textBox_Write_time_out.Text.ToString());
            serialPort1.DiscardNull = Convert.ToBoolean(comboBox_DiscardNull.Text.ToString());
            serialPort1.DtrEnable = Convert.ToBoolean(comboBox_DtrEnable.Text.ToString());
            serialPort1.ParityReplace = Convert.ToByte(textBox_ParityReplace.Text.ToString());
            serialPort1.RtsEnable = Convert.ToBoolean(comboBox_RtsEnable.Text.ToString());
            serialPort1.ReadBufferSize = (int)Int16.Parse(textBox_ReadBufferSize.Text.ToString());
            serialPort1.WriteBufferSize = (int)Int16.Parse(textBox_WriteBufferSize.Text.ToString());
        }

        private void button_Conectar_Puerto_Click(object sender, EventArgs e)
        {
            if(!serialPort1.IsOpen)
              {

                 serialPort1.Open();
                 Conectado = true; // Cariable de clase boleana para controlar si el puero lo abro yo o no.
                 button_Conectar_Puerto.Text = "DESCONECTAR";
                 button_Conectar_Puerto.BackColor = Color.Green;
              }

            else
              {
                if (Conectado)
                  {
                    serialPort1.Close();
                    Conectado = false;
                    button_Conectar_Puerto.Text = "CONECTAR";
                    button_Conectar_Puerto.BackColor = Color.Red;
                  }
                else
                  {
                    // Esta ocupado por otro programa muestra mensaje y no hacer nada
                      label_Mensajes_de_error.Text = "Puerto ocupado o no lo encuentra.";
                  }
               }
        }

        // Detecta USB o puerto serie virtual cuando lo conecta y desconecta del cable.
        protected override void WndProc(ref Message USB)
        {
            if (USB.Msg == 0x219)
            {
                comboBox_Puerto.DataSource = SerialPort.GetPortNames();
            }

            base.WndProc(ref USB); // Detecta si hay cambios en el usb y si los hay los refleja.
        }
    }
}


Felices navidades.
Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/

Eleкtro

#1
Cita de: Meta en 27 Diciembre 2015, 03:36 AMTeniendo 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 (csharp) [Seleccionar]
this.ToolStripStatusLabel1.Text = "Resumen...";

Explica cual es el problema real que encuentras.

Saludos








Meta

Hola:

Me refiero que muestre esto así.

9600 8-N-2

Saludos.
Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/

Eleкtro

Bien, ¿y el problema cual es?.

String.Format()








El Benjo

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 (csharp) [Seleccionar]

private void MostrarConfiguracion()
{
  ToolStripLabel.Text = ComboBoxBitsPorSegundo.value.ToString() + " ";
  ToolStripLabel.Text += ComboBoxBitsDeDatos.value.ToString() + "-";
  if(ComboBoxParidad.value == "None")
  {
    ToolStripLabel.Text += "N-";
  }else{
    ToolStripLabel.Text += "S-"; //Aquí quizás quieras otro compartamiento. Lo ajustas tú.
  }
// Y aquí sigues el proceso para indicar los bits de paridad seleccionados. No sé las opciones que tiene tu combobox.
}


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.
www.es.neftis-ai.com

Sí hay un mejor lenguaje de programación y es ese con el que puedes desarrollar tus objetivos.