Nanook.QueenBee.EditorForm.reloadPak C# (CSharp) Method

reloadPak() private method

private reloadPak ( ) : void
return void
        private void reloadPak()
        {
            int topIdx = 0;

            try
            {
                int idx = lstPakContents.SelectedItems[0].Index;
                lstPakContents.BeginUpdate();

                //try to preserve the top item
                topIdx = lstPakContents.TopItem.Index; //can return null

                //clear items without as much flicker as Items.Clear
                for (int i = lstPakContents.Items.Count - 1; i >= 0; i--)
                    lstPakContents.Items.RemoveAt(i);

                btnLoadPak_Click(this, new EventArgs());
                if (idx >= lstPakContents.Items.Count)
                    idx = lstPakContents.Items.Count - 1;
                if (topIdx >= lstPakContents.Items.Count)
                    topIdx = lstPakContents.Items.Count - 1;

                lstPakContents.Items[idx].Selected = true;

                lstPakContents.TopItem = lstPakContents.Items[topIdx];
                lstPakContents.TopItem = lstPakContents.Items[topIdx]; //crazy, but stops the wrong item being set.

            }
            finally
            {
                lstPakContents.EndUpdate();
            }
        }
EditorForm