private void Delete(object sender, EventArgs args) { int SelectedItem; string ipstr; string[] IpPort; SelectedItem = tvServers.Selection.CountSelectedRows(); if (SelectedItem == 0) { return; } try { InterfaceServer[] Items = new InterfaceServer[SelectedItem]; Gtk.TreeModel model; Gtk.TreeIter iter; Gtk.TreePath[] paths = tvServers.Selection.GetSelectedRows(out model); model.GetIter(out iter, paths[0]); for (int i = 0; i != SelectedItem; i++) { try { ipstr = model.GetValue(iter, 1).ToString(); IpPort = ipstr.Split(":".ToCharArray()); IPAddress ip = IPAddress.Parse(IpPort[0]); krnGateway.DeleteServer(BitConverter.ToUInt32(ip.GetAddressBytes(), 0), Convert.ToUInt16(IpPort[1])); stServers.Remove(ref iter); } catch (Exception ex) { Debug.WriteLine(ex.ToString()); } model.GetIter(out iter, paths[i + 1]); } } catch (Exception ex) { Debug.WriteLine(ex.ToString()); } }