I'm doing a project for serial port..
I need to select the available com port from the combo box.
but i cant get it.. And i needed some help~
Here's my code.. its in C#:
btn_Open is a button to activate the serial port
private void btnOpen_Click(object sender, EventArgs e)
{
string [] myPort;
int COM1 = cbCommPorts.SelectedIndex;
int COM2 = cbCommPorts.SelectedIndex;
int COM3 = cbCommPorts.SelectedIndex;
Object selectedItem = serialPort1.PortName;
myPort = System.IO.Ports.SerialPort.GetPortNames();
cbCommPorts.Items.AddRange(myPort);
serialPort1.PortName = cbCommPorts.SelectedItem.ToString();
serialPort1.BaudRate = 115200;
if (serialPort1.IsOpen) {
serialPort1.PortName = cbCommPorts.SelectedItem.ToString();
serialPort1.Open();
btnTransmit.Enabled = true;
btn2.Enabled = true;
btn3.Enabled = true;
}
cbCommPorts is the name i got for the Combo Box
private void cbCommPorts_SelectedIndexChanged(object sender, EventArgs e) { int COM1 = cbCommPorts.SelectedIndex; int COM2 = cbCommPorts.SelectedIndex; int COM3 = cbCommPorts.SelectedIndex; Object selectedItem = serialPort1.PortName;
MessageBox.Show("COM PORT: " + selectedItem.ToString() + " Selected");
}
Is there any problem to my codes? Thanks..
Here's one way you might use it with Windows Forms
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.Load += Form1_Load;
}
void Form1_Load(object sender, EventArgs e)
{
var ports = SerialPort.GetPortNames();
cmbSerialPorts.DataSource = ports;
}
private void btnOk_Click(object sender, EventArgs e)
{
if (cmbSerialPorts.SelectedIndex > -1)
{
MessageBox.Show(String.Format("You selected port '{0}'", cmbSerialPorts.SelectedItem));
Connect(cmbSerialPorts.SelectedItem.ToString());
}
else
{
MessageBox.Show("Please select a port first");
}
}
private void Connect(string portName)
{
var port = new SerialPort(portName);
if (!port.IsOpen)
{
port.BaudRate = 19200;
port.Open();
//Continue here....
}
}
}
That being said, unless you are maintaining legacy software, it might be a good idea to take a look at WPF. Learning how to use WPF instead of WinForms will ready you for development on Windows 8, Windows Phone etc... And the databinding features make what you're trying to do really easy.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With