Autor Beitrag
blutengel
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 59

Win XP, WIN 7
VS#2008 Prof
BeitragVerfasst: Sa 11.08.12 22:42 
Hi,

ich bin gerade dabei ein Programm zu schreiben in dem ich über den Com Port mit einem µC komuniziere.
Jetzt möchte ich unter dem Menüpunkt einstellungen meinen Com Port einstellen können.

Über:
ausblenden C#-Quelltext
1:
string[] Portnames = System.IO.Ports.SerialPort.GetPortNames();					


kann ich die verfügbaren Ports auslesen. Jetzt soll unter Einstellungen der Punkt Com Port
auftauchen und darin soll sich ein weiterer MenuItem öffnen in dem die verfügbaren Ports aufgelistet sind, und ich sie da sofort auswählen kann.

Ich da da leider noch keine Ahnung wie ich das machen könnte.

Ich hoffe es kann mir hier einer weiter helfen.


MFG

blutengel
Christoph1972
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 690
Erhaltene Danke: 16


VS2015 Pro / C# & VB.Net
BeitragVerfasst: So 12.08.12 10:16 
Hi, das sollt eine schnelle Lösung sein:

ausblenden C#-Quelltext
1:
deineComboBox.DataSource = System.IO.Ports.SerialPort.GetPortNames();					

_________________
Gruß
Christoph
jfheins
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 918
Erhaltene Danke: 158

Win 10
VS 2013, VS2015
BeitragVerfasst: So 12.08.12 11:55 
Ich vermute mal, es geht vor allem darum, die Auswahl in das Mainmenu hinein zu bekommen.
Für diesen Fall habe ich eine Lösung parat. Folgender Code:
ausblenden volle Höhe C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
    public partial class Form1 : Form
    {
        string SelectedPort = "";

        public Form1()
        {
            InitializeComponent();
        }

        private string[] GetPortNames()
        {
            return new string[] { "COM 1""COM 2""COM 12" };
        }

        private void cOMPortsToolStripMenuItem_DropDownOpening(object sender, EventArgs e)
        {
            cOMPortsToolStripMenuItem.DropDownItems.Clear();
            foreach (var item in GetPortNames())
            {
                var myMenuItem = new ToolStripMenuItem(item);
                if (item == SelectedPort)
                    myMenuItem.Checked = true;
                myMenuItem.Click += toolStripMenuItem_Click;
                cOMPortsToolStripMenuItem.DropDownItems.Add(myMenuItem);
            }
        }

        private void toolStripMenuItem_Click(object sender, EventArgs e)
        {
            SelectedPort = (sender as ToolStripMenuItem).Text;
        }
    }

Für die COM-Port Auflistung musste ich mir ein Mock-up programmieren, sowas hat mein PC nicht mehr :wink:

In der GUI ist ein Menüpunkt mit einem Leerzeichen eingefügt, damit der Pfeil für das Untermenü da ist:
(Und der Menüpunkt "COM Port" erhält ein DropDownOpening-Event)
mainmenu
Einloggen, um Attachments anzusehen!