Laden...

Forenbeiträge von Mr Bean Ingesamt 1 Beiträge

22.12.2010 - 11:45 Uhr

Hallo

Ich habe bisher eigentlich nur Programme für µController in C geschrieben. Nun wollte ich in C# ein Programm schreiben um damit auf einen µController zuzugreifen (UART).
Ich habe es bis jetzt soweit geschafft, einen COM Port zu öffnen.
Außerdem hab ich in es geschafft, in der MainForm eine Combobox mit den verfügbaren COM Ports zu füllen:


namespace DataLogger
{
	public partial class MainForm : Form
	{
		private static System.IO.Ports.SerialPort serialPort1;
		
		// Get a list of serial port names.
        string[] ports = SerialPort.GetPortNames();

		public MainForm()
		{
			InitializeComponent();
            
			foreach(string port in ports)
			{
				COMPortList.Items.Add(port);
			}
			BaudList.Items.Add("115200");
			BaudList.Items.Add("9600");
			BaudList.SelectedIndex = 0;
			COMPortList.SelectedIndex = 0;
		}
		
		void MainFormLoad(object sender, EventArgs e)
		{
			
		}
	}
}

Wenn ich das gleiche jetzt innerhalb des EventHandlers machen möchte, also der ComboBox immer aktualisiert wird wenn ich darauf klicke, dann bekomme ich folgende Fehlermeldung:

Auf den Member "System.IO.Ports.SerialPort.GetPortNames()" kann nicht mit einem Instanzenverweis zugegriffen werden. Qualifizieren Sie ihn stattdessen mit einem Typnamen. (CS0176)

Hier der entsprechende Code:


void COMPortListSelectedIndexChanged(object sender, EventArgs e)
		{
			string [] availablePorts = serialPort1.GetPortNames();
			foreach(string port in ports)
			{
				COMPortList.Items.Add(port);
			}
		}

Wahrscheinlich ist das Problem recht simpel, aber irgendwie komme ich nicht drauf. Könnt ihr mir hier irgendwie helfen?

Grüße

Bean