Example #1
0
        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());
            }
        }