Could anyone explain why I get a NullReferenceException, when I create a new Button and try to reference it? Creating the Button and assigning the Name works fine, but referencing it does not.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace DragNDrop_1
{
public partial class Form1 : Form
{
    //Variables----------------------------------------------------------------------
    int ButtonID = 100;
    bool isDraggingButton = false;
    public Form1()
    {
        InitializeComponent();
    }
    //----------------------------------------------------------------------Variables
    private void btn_addButton_Click(object sender, EventArgs e)
    {
        AddButton();
    }
    public void AddButton()
    {
        Button b = new Button();
        b.Name = "Button" + ButtonID.ToString();
        b.Text = "Button" + ButtonID.ToString();
        b.Location = new Point(ButtonID, ButtonID);
        ButtonID = ButtonID + 100;
        pnl_DragNDrop.Controls.Add(b);
        isDraggingButton = true;
    }
    private void DragTimer_Tick(object sender, EventArgs e)
    {
        if (isDraggingButton == true)
        {
            Point mouse = PointToClient(MousePosition);
            this.Controls["Button" + ButtonID.ToString()].Location = new Point(mouse.X + 20, mouse.Y + 20);
        }
    }
}
}
The Exception occurs in the timer, where I try to reference the last button created. I read trough some threads regarding this Exception, but I still can't spot the error. Yes, I know that this is very messy and I should propably create a custom Loop or de-/re- activate the timer, but this is just for testing purposes. Note that I'm new to C# and Windows Forms.
EDIT: As explained by Lukasz M, this is a Problem regarding Ownership (maybe the Term is not correct, it's the best german-english Translation I can come up with). This is neither the Focus of the Question from the Thread I "duplicated", nor is it mentioned in the Answer. If it is though, I have to question my English-skills. Anyway, I just wanted to make clear, that I indeed read the Thread, but wasn't able to spot a Solution. Maybe it's just the lack of English- and C#-Skills, but I'm pretty sure that this is not a duplicate.
 
    