Hello. I am building controls dynamically on a form based on some config data I read. Originally I had code like:
- public Button GetElementButton(string elementID, string text) {
- Element elem = GetElement(elementID);
- if (elem == null) return null;
- Button ret = new Button();
- ret.Text = text;
- ret.Location = elem.location;
- ret.Size = elem.size;
- return ret;
- }
- public Label GetElementLabel(string elementID, string text) {
- Element elem = GetElement(elementID);
- if (elem == null) return null;
- Label ret = new Label();
- ret.Text = text;
- ret.Location = elem.location;
- ret.Size = elem.size;
- return ret;
- }
-
Button myButton = GetElementButton("btn.score.p1", "Score");myButton.Click += (sender, e) => { Game.Score(1); };Controls.Add(myButton);
- public Control GetElementControl(string elementID, string text) {
- Element elem = GetElement(elementID);
- if (elem == null) return null;
- Control ret = new Control();
- ret.Text = text;
- ret.Location = elem.location;
- ret.Size = elem.size;
- return ret;
- }
- Button myButton = (Button)GetElementControl("btn.score.p1", "Score");
- myButton.Click += (sender, e) => { Game.Score(1); };
- Controls.Add(myButton);
- System.InvalidCastException: 'Unable to cast object of type 'System.Windows.Forms.Control' to type 'System.Windows.Forms.Button'.'
Thanks!
Sachin SinghPosted May 29, 2021, 4:47 PM
KenPosted Jun 8, 2021, 9:05 PM