{"id":22065809,"url":"https://github.com/karenpayneoregon/dynamic-textboxs-csharp","last_synced_at":"2026-05-11T02:22:33.576Z","repository":{"id":110840473,"uuid":"366512213","full_name":"karenpayneoregon/dynamic-textboxs-csharp","owner":"karenpayneoregon","description":"Demonstrates creation of controls at runtime from SQL-Server using C#","archived":false,"fork":false,"pushed_at":"2021-07-14T16:53:57.000Z","size":110,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-29T00:29:55.599Z","etag":null,"topics":["csharp","sqlserver","windows-forms"],"latest_commit_sha":null,"homepage":"","language":"TSQL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/karenpayneoregon.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-05-11T21:01:52.000Z","updated_at":"2022-02-03T00:21:05.000Z","dependencies_parsed_at":null,"dependency_job_id":"ec2c9218-d0ac-4da5-af90-2f501c6b4247","html_url":"https://github.com/karenpayneoregon/dynamic-textboxs-csharp","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/karenpayneoregon%2Fdynamic-textboxs-csharp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/karenpayneoregon%2Fdynamic-textboxs-csharp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/karenpayneoregon%2Fdynamic-textboxs-csharp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/karenpayneoregon%2Fdynamic-textboxs-csharp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/karenpayneoregon","download_url":"https://codeload.github.com/karenpayneoregon/dynamic-textboxs-csharp/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245144978,"owners_count":20568056,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["csharp","sqlserver","windows-forms"],"created_at":"2024-11-30T19:22:08.007Z","updated_at":"2026-05-11T02:22:28.549Z","avatar_url":"https://github.com/karenpayneoregon.png","language":"TSQL","funding_links":[],"categories":[],"sub_categories":[],"readme":"# About\n\nDemonstrates creating dynamic buttons with data using Microsoft SQL-Server, C#, .NET Framework 4.8.\n\n---\n\n![img](assets/figure1.png)\n\n---\n\n![img](assets/figure2.png)\n\n---\n\n# Core code\n\n```csharp\npublic class CreateButtons\n{\n    /// \u003csummary\u003e\n    /// Size to create each button\n    /// \u003c/summary\u003e\n    /// \u003creturns\u003e\u003c/returns\u003e\n    public Size ButtonSize { get; set; }\n    /// \u003csummary\u003e\n    /// Provides a reference to your buttons\n    /// \u003c/summary\u003e\n    /// \u003creturns\u003e\u003c/returns\u003e\n    public List\u003cButton\u003e Buttons { get; set; }\n    /// \u003csummary\u003e\n    /// base name of buttone e.g. btn, cmd etc.\n    /// \u003c/summary\u003e\n    /// \u003creturns\u003e\u003c/returns\u003e\n    public string ButtonBaseName { get; set; }\n    /// \u003csummary\u003e\n    /// Used to spread out buttons\n    /// \u003c/summary\u003e\n    /// \u003creturns\u003e\u003c/returns\u003e\n    public int Base { get; set; }\n    public int BaseAddition { get; set; }\n    /// \u003csummary\u003e\n    /// Count of buttons\n    /// \u003c/summary\u003e\n    /// \u003creturns\u003e\u003c/returns\u003e\n    public int ButtonCount { get; set; }\n    /// \u003csummary\u003e\n    /// control to place buttons onto\n    /// \u003c/summary\u003e\n    /// \u003creturns\u003e\u003c/returns\u003e\n    public Control ParentControl { get; set; }\n    /// \u003csummary\u003e\n    /// Used here to push the current primary key back to the caller\n    /// \u003c/summary\u003e\n    public EventHandler\u003cIdentifierButtonEventArgs\u003e ClickedHandler;\n    /// \u003csummary\u003e\n    /// constructor for CreateButtonsFromTable\n    /// \u003c/summary\u003e\n    /// \u003cparam name=\"ParentControl\"\u003e\u003c/param\u003e\n    /// \u003cparam name=\"BaseName\"\u003e\u003c/param\u003e\n    public CreateButtons(Control ParentControl, string BaseName)\n    {\n        this.ParentControl = ParentControl;\n        this.ButtonBaseName = BaseName;\n    }\n    /// \u003csummary\u003e\n    /// Creates buttons with their names taken from fieldName with a prefix of Me.ButtonBaseName\n    /// and sets the tag of each button from Identifier which would be the primary key of a DataRow.\n    /// \u003c/summary\u003e\n    /// \u003cparam name=\"sender\"\u003e\u003c/param\u003e\n    /// \u003cparam name=\"Identifier\"\u003eused to set tag for each button\u003c/param\u003e\n    /// \u003cparam name=\"fieldName\"\u003eused to set button text and button name\u003c/param\u003e\n    public void CreateButtonsFromTable(DataTable sender, string Identifier, string fieldName)\n    {\n\n        Buttons = new List\u003cButton\u003e();\n\n        ButtonCount = sender.Rows.Count - 1;\n\n        sender.AsEnumerable().Select((row) =\u003e new\n            {\n                ID = Convert.ToInt32(row[Identifier]),\n                Name = row[fieldName].ToString()\n            })\n            .ToList().ForEach((item) =\u003e \n                {\n                    Button b = new Button\n                    {\n                        Name = string.Concat(ButtonBaseName, item.Name),\n                        Text = item.Name,\n                        Tag = item.ID,\n                        Size = ButtonSize,\n                        Location = new Point(25, this.Base),\n                        Parent = ParentControl,\n                        Visible = true\n                    };\n\n            b.Click += (object s, EventArgs e) =\u003e {\n                ClickedHandler(s, new IdentifierButtonEventArgs(Convert.ToInt32(((Button)s).Tag)));\n            };\n\n            ParentControl.Controls.Add(b);\n            Buttons.Add(b);\n            Base += BaseAddition;\n        });\n    }\n    /// \u003csummary\u003e\n    /// Create buttons based on Me.ButtonCount\n    /// \u003c/summary\u003e\n    public CreateButtons()\n    {\n        Buttons = Enumerable.Range(0, ButtonCount).Select((Indexer) =\u003e {\n\n            Button b = new Button\n            {\n                Name = string.Concat(ButtonBaseName, Indexer + 1),\n                Text = (Indexer + 1).ToString(),\n                Size = this.ButtonSize,\n                Location = new Point(25, Base),\n                Parent = \n                ParentControl,\n                Visible = true\n            };\n\n            // alternate\n            //b.Click += new EventHandler(buttonIntregate);\n\n            b.Click += (object sender, EventArgs e) =\u003e\n            {\n                Button tb = (Button)sender;\n                if (tb.Name == ButtonBaseName + \"1\")\n                {\n                    tb.Text = \"Got it\";\n                }\n                else\n                {\n                    MessageBox.Show(tb.Name);\n                }\n            };\n\n            this.ParentControl.Controls.Add(b);\n\n            Base += BaseAddition;\n\n            return b;\n\n        }).ToList();\n    }\n}\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkarenpayneoregon%2Fdynamic-textboxs-csharp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkarenpayneoregon%2Fdynamic-textboxs-csharp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkarenpayneoregon%2Fdynamic-textboxs-csharp/lists"}