So I was trying to send custom arguments to an event, but it never worked, I tried so many different methods, but I never got it to work, So basically!
public void CreateEmojiList()
        {
            CreateAllEmojis();
            int btnCount = 0;
            foreach(Emoji emoji in emojiList)
            {
                Button btnEmoji = new Button();
                btnEmoji.Size = new Size(40, 36);
                btnEmoji.FlatStyle = FlatStyle.Flat;
                btnEmoji.FlatAppearance.MouseDownBackColor = Color.Cyan;
                btnEmoji.Cursor = Cursors.Hand;
                btnEmoji.Font = new Font("Bahnschrift", 6.75f);
                btnEmoji.Text = emoji.EmojiText;
                btnEmoji.Top = (panel_main.Controls.OfType<Button>().Count<Button>() / 4) * (1 + btnEmoji.Height) + 6;
                btnEmoji.Left = (btnEmoji.Width + 1) * btnCount + 6;
                panel_main.Controls.Add(btnEmoji);
                btnEmoji.Click += //What do I do here?
;                btnCount++;
                if (btnCount == 4)
                    btnCount = 0;
            }
        }
        protected virtual void OnEmojiClick(EmojiClickEventArgs e)
        {
            if (this.EmojiClick != null)
                EmojiClick(e);
        }
this is the class I want to use to pass my arguments:
public class EmojiClickEventArgs : EventArgs
    {
        private string emojiText;
        private string emojiName;
        public EmojiClickEventArgs(string EmojiText, string EmojiName)
        {
            this.EmojiText = EmojiText;
            this.EmojiName = EmojiName;
        }
        public string EmojiText { get { return emojiText; } set { emojiText = value; } }
        public string EmojiName { get { return emojiName; } set { emojiName = value; } }
    }
I want to get those two values from emoji.EmojiText and emoji.EmojiName
 
     
     
     
    