c# Getting variable from private : Im a noob to c# as my code is about to prove...

    namespace ClassLibrary6
{
    public partial class Form1 : Form
    {
        public static List<string> IList()  //get title name for playlist
        {
            List<string> iList = new List<string>();
            foreach (var playlist in PluginHelper.DataManager.GetAllPlaylists())
            {
                iList.Add(playlist.Name);
            }
            return iList;
        }

        public Form1()
        {
            InitializeComponent();
        }



        private void Form1_Load(object sender, EventArgs e)
        {
            CreateTheButtons();
        }



        private void CreateTheButtons() //create buttons 
        {

            List<string> hostList = IList();

            int var1 = 0;            

            foreach (var playlist in PluginHelper.DataManager.GetAllPlaylists()) //count playlists
            {
                ++var1;                
            }

            myButton[] BooTon = new myButton[var1];  //add button on playlist count
            for (int i = 0; i < BooTon.Length; i++)
            {            
                
                    BooTon[i] = new myButton();
                    BooTon[i].Size = new Size(250, 50);
                    BooTon[i].Location = new Point( 0 ,i * 60);
                    BooTon[i].Text = (hostList[i]);
                    BooTon[i].SetNum1(i);
                    BooTon[i].Click += new EventHandler(ButtonClick);
                    this.Controls.Add(BooTon[i]);
                
            }
        }

        private void ButtonClick(object sender, EventArgs e)
        {
            
            myButton btn = sender as myButton;
            List<string> hostList = IList();
            
            MessageBox.Show(hostList[btn.GetNum1()]); //messagebox selected button playlist title
            //MessageBox.Show(btn.Num1 + ", " + iList[1] + "Button Clicked");
        }
    }


    public class myButton : Button
    {
        private int num1;

        public int GetNum1()
        { return num1; }
        public void SetNum1(int value)
        {
            num1 = value;
        }

    }
}
What my code is trying to do.
Create a list of playlist titles.
Count how many playlists and add a windows form button for each playlist.
Add playlist title to the button.
When button is selected, match button number to playlist... do stuff

My question is... how would i display " MessageBox.Show(hostList[btn.GetNum1()])" outside of the private void ButtonClick. I cant change it to public without errors. Is my get/set right? Would someone mind placing my messagebox outside private but still have it show on button press please.

If you also have any tips for better practices please share.

I have googled and searched but hit a wall. Any help would be appreciated.