Listview Columns
I have the following code which is used to get various details about wireless networks;
// Lists all networks ssid, signal stregth, availability, & security
Wlan.WlanAvailableNetwork[] networks = wlanIface.GetAvailableNetworkList(0);
foreach (Wlan.WlanAvailableNetwork network in networks)
listBox1.Items.Add(GetStringForSSID(network.dot11Ssid));
foreach (Wlan.WlanAvailableNetwork network in networks)
listBox2.Items.Add(network.wlanSignalQuality + "%");
foreach (Wlan.WlanAvailableNetwork network in networks)
listBox3.Items.Add(network.wlanNotConnectableReason);
foreach (Wlan.WlanAvailableNetwork network in networks)
listBox4.Items.Add(network.securityEnabled);
Currently, each detail is stored in a different listbox.
I have changed the code to the following;
// Lists all networks ssid, signal stregth, availability, & security
Wlan.WlanAvailableNetwork[] networks = wlanIface.GetAvailableNetworkList(0);
foreach (Wlan.WlanAvailableNetwork network in networks)
listView1.Items.Add(GetStringForSSID(network.dot11Ssid));
foreach (Wlan.WlanAvailableNetwork network in networks)
listView1.Items.Add(network.wlanSignalQuality + "%");
foreach (Wlan.WlanAvailableNetwork network in networks)
listView1.Items.Add(network.wlanNotConnectableReason);
foreach (Wlan.WlanAvailableNetwork network in networks)
listView1.Items.Add(network.securityEnabled);
All that happens is that all the data is written to the first column in a long list.
I know the code above (listVIew1.Items.Add) is wrong but can someone explain to me what the code is to get each foreach loop to place it's data in a new column.
Thanks in advance
buster2209
Junior Poster in Training
53 posts since Apr 2010
Reputation Points: 10
Solved Threads: 0
What you need to do is have a single loop, then inside the loop create a new ListViewItem which will hold the main item in your array, then inside each iteration add a SubItem to your ListViewItem.
Here's an example
Wlan.WlanAvailableNetwork[] networks = wlanIface.GetAvailableNetworkList(0);
foreach (Wlan.WlanAvailableNetwork network in networks)
{
ListViewItem lv = new ListViewItem(network.dot11Ssid);
lv.SubItems.Add(network.wlanSignalQuality + "%");
lv.SubItems.Add(network.wlanNotConnectableReason);
lv.SubItems.Add(network.securityEnabled);
listView1.Items.Add(lv);
}
PsychoCoder
Junior Poster in Training
50 posts since Jan 2008
Reputation Points: 18
Solved Threads: 4
thanks, that worked a treat!
buster2209
Junior Poster in Training
53 posts since Apr 2010
Reputation Points: 10
Solved Threads: 0
No problem, glad I could help
PsychoCoder
Junior Poster in Training
50 posts since Jan 2008
Reputation Points: 18
Solved Threads: 4