日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Winforn中使用代码动态生成控件

發布時間:2025/3/19 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Winforn中使用代码动态生成控件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

場景

有時候需要根據配置文件在窗體中使用代碼動態生成控件。

比如讀取xml配置文件中的節點數量,然后在窗體中生成指定數量的RadioGroup控件。

實現

新建一個窗體,在窗體的加載完之后的事件中

?private void ChartOption_Load(object sender, EventArgs e){//根據配置文件路徑初始化圖形選項DialoginitChartOptionPane(Global.RADIO_GROUP_YAXIS_FILEPATH);}

傳入配置文件路徑,然后生成控件。

?public void initChartOptionPane(string xmlFilePath){//不同組水平方向控件之間的距離 = 控件的寬度 + 組與組之間的距離int horizontalDistance = Global.NOGROUP_HORIZONTAL_DISTANCE + Global.CHART_OPTION_WIDTH;//獲取Y軸的listList<YAxisModel> yList = ChartOptionHelper.getYAxisList(xmlFilePath);//獲取配置文件中的radioGroup的選項List<string> radioGrupItems = initRadioGroupItem(Global.RADIO_GROUP_ITEM_FILEPATH);//生成對應組元素for (int i = 0; i < yList.Count; i++){//生成一個radioGroupRadioGroup radioGroup = new RadioGroup();foreach (string s in radioGrupItems){//每一個單元按鈕對應的選項itemRadioGroupItem item = new RadioGroupItem();//設置選項的value值item.Value = s;//設置選項的描述值 即 要顯示的值item.Description = s;//使選項啟用item.Enabled = true;//將新增的選項添加到radiogroup的Items中radioGroup.Properties.Items.Add(item);}//設置寬度radioGroup.Width = Global.CHART_OPTION_WIDTH;//加1 保留出空白選項的高度radioGroup.Height = Global.RADIO_HEIGHT * (radioGrupItems.Count + 1);//設置位置radioGroup.Location = new Point(Global.NOGROUP_HORIZONTAL_DISTANCE + i * horizontalDistance, Global.GROUP_VERTICAL_DISTANCE);this.Controls.Add(radioGroup);//添加下限輸入框TextEdit minTextEdit = new TextEdit();minTextEdit.Text = yList[i].Min.ToString();minTextEdit.Width = Global.CHART_OPTION_WIDTH;minTextEdit.Location = new Point(Global.NOGROUP_HORIZONTAL_DISTANCE + i * horizontalDistance, Global.GROUP_VERTICAL_DISTANCE * 2 + radioGroup.Height);this.Controls.Add(minTextEdit);//添加上限輸入框TextEdit maxTextEdit = new TextEdit();maxTextEdit.Text = yList[i].Max.ToString();maxTextEdit.Location = new Point(Global.NOGROUP_HORIZONTAL_DISTANCE + i * horizontalDistance, Global.GROUP_VERTICAL_DISTANCE * 3 + radioGroup.Height + minTextEdit.Height);maxTextEdit.Width = Global.CHART_OPTION_WIDTH;this.Controls.Add(maxTextEdit);//添加顏色選擇器ColorPickEdit colorPickEdit = new ColorPickEdit();colorPickEdit.Text = yList[i].Color;colorPickEdit.Width = Global.CHART_OPTION_WIDTH;colorPickEdit.Location = new Point(Global.NOGROUP_HORIZONTAL_DISTANCE + i * horizontalDistance, Global.GROUP_VERTICAL_DISTANCE * 4 + radioGroup.Height + minTextEdit.Height + maxTextEdit.Height);this.Controls.Add(colorPickEdit);}}

注:

1.生成控件對象。

2.設置控件對象的顯示值text屬性以及寬度等屬性。

3.設置控件的位置。

4.將控件添加進窗體。

主要實現代碼:

? for (int i = 0; i < yList.Count; i++){//生成一個radioGroupRadioGroup radioGroup = new RadioGroup();foreach (string s in radioGrupItems){//每一個單元按鈕對應的選項itemRadioGroupItem item = new RadioGroupItem();//設置選項的value值item.Value = s;//設置選項的描述值 即 要顯示的值item.Description = s;//使選項啟用item.Enabled = true;//將新增的選項添加到radiogroup的Items中radioGroup.Properties.Items.Add(item);}//設置寬度radioGroup.Width = Global.CHART_OPTION_WIDTH;//加1 保留出空白選項的高度radioGroup.Height = Global.RADIO_HEIGHT * (radioGrupItems.Count + 1);//設置位置radioGroup.Location = new Point(Global.NOGROUP_HORIZONTAL_DISTANCE + i * horizontalDistance, Global.GROUP_VERTICAL_DISTANCE);this.Controls.Add(radioGroup);//添加下限輸入框TextEdit minTextEdit = new TextEdit();minTextEdit.Text = yList[i].Min.ToString();minTextEdit.Width = Global.CHART_OPTION_WIDTH;minTextEdit.Location = new Point(Global.NOGROUP_HORIZONTAL_DISTANCE + i * horizontalDistance, Global.GROUP_VERTICAL_DISTANCE * 2 + radioGroup.Height);this.Controls.Add(minTextEdit);//添加上限輸入框TextEdit maxTextEdit = new TextEdit();maxTextEdit.Text = yList[i].Max.ToString();maxTextEdit.Location = new Point(Global.NOGROUP_HORIZONTAL_DISTANCE + i * horizontalDistance, Global.GROUP_VERTICAL_DISTANCE * 3 + radioGroup.Height + minTextEdit.Height);maxTextEdit.Width = Global.CHART_OPTION_WIDTH;this.Controls.Add(maxTextEdit);//添加顏色選擇器ColorPickEdit colorPickEdit = new ColorPickEdit();colorPickEdit.Text = yList[i].Color;colorPickEdit.Width = Global.CHART_OPTION_WIDTH;colorPickEdit.Location = new Point(Global.NOGROUP_HORIZONTAL_DISTANCE + i * horizontalDistance, Global.GROUP_VERTICAL_DISTANCE * 4 + radioGroup.Height + minTextEdit.Height + maxTextEdit.Height);this.Controls.Add(colorPickEdit);}

效果

?

關注公眾號
霸道的程序猿
獲取編程相關電子書、教程推送與免費下載。

總結

以上是生活随笔為你收集整理的Winforn中使用代码动态生成控件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。