亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

C#中為DataGrid添加下拉列表框

2019-11-18 19:36:51
字體:
來源:轉載
供稿:網友

  本文將介紹如何在 System.Windows.Forms.DataGrid中切入使用ComboBox控件,主要包括三方面的內容。

  1. 在DataGrid中加入ComboBox列;

  2. 把在DataGrid中的修改保存到對應的網格;
 
  3. 設置DataGrid中網格的焦點。

  下面是整個源代碼,一些功能可以看注釋。

using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;

namespace DataGridTest
{
 public class Form1 : System.Windows.Forms.Form
 {
  PRivate System.Windows.Forms.DataGrid dgdFunctionArea;
  private DataTable dtblFunctionalArea;
  private System.Windows.Forms.Button buttonFocus;
  private System.ComponentModel.Container components = null;

  public Form1()
  {
   InitializeComponent();
   PopulateGrid();
  }

  protected override void Dispose( bool disposing )
  {
   if( disposing )
   {
    if (components != null)
    {
     components.Dispose();
    }
   }
   base.Dispose( disposing );
  }

  #region Windows 窗體設計器生成的代碼

  private void InitializeComponent()
  {
   this.dgdFunctionArea = new System.Windows.Forms.DataGrid();
   this.buttonFocus = new System.Windows.Forms.Button();
   ((System.ComponentModel.ISupportInitialize)(this.dgdFunctionArea)).BeginInit();
   this.SuspendLayout();
   //
   // dgdFunctionArea
   //
   this.dgdFunctionArea.DataMember = "";
   this.dgdFunctionArea.HeaderForeColor = System.Drawing.SystemColors.ControlText;

   this.dgdFunctionArea.Location = new System.Drawing.Point(4, 8);
   this.dgdFunctionArea.Name = "dgdFunctionArea";
   this.dgdFunctionArea.Size = new System.Drawing.Size(316, 168);
   this.dgdFunctionArea.TabIndex = 0;
   //
   // buttonFocus
   //
   this.buttonFocus.Location = new System.Drawing.Point(232, 188);
   this.buttonFocus.Name = "buttonFocus";
   this.buttonFocus.Size = new System.Drawing.Size(84, 23);
   this.buttonFocus.TabIndex = 1;
   this.buttonFocus.Text = "獲取焦點";
   this.buttonFocus.Click += new System.EventHandler(this.buttonFocus_Click);
   //
   // Form1
   //
   this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
   this.ClientSize = new System.Drawing.Size(332, 217);
   this.Controls.Add(this.buttonFocus);
   this.Controls.Add(this.dgdFunctionArea);
   this.Name = "Form1";
   this.Text = "Form1";
   ((System.ComponentModel.ISupportInitialize)(this.dgdFunctionArea)).EndInit();
   this.ResumeLayout(false);

  }
  #endregion
  /// <summary>
  /// 應用程序的主入口點。
  /// </summary>
  [STAThread]
  static void Main()
  {
   application.Run(new Form1());
  }
  //初始化DataGrid
  private void PopulateGrid()
  {
   //創建一個DataTable對象,包括四列,前三列為String,最后一列為Boolean。
   dtblFunctionalArea = new DataTable ("FunctionArea");
   string[] arrstrFunctionalArea = new string [3]{"Functional Area","Min","Max"};
   DataColumn dtCol = null;
   //創建String列
   for(int i=0; i< 3;i++)
   {
    dtCol = new DataColumn(arrstrFunctionalArea[i]);
    dtCol.DataType = Type.GetType("System.String");
    dtCol.DefaultValue = "";
    dtblFunctionalArea.Columns.Add(dtCol);
   }

   //創建Boolean列,用CheckedBox來顯示。
   DataColumn dtcCheck = new DataColumn("IsMandatory");
   dtcCheck.DataType = System.Type.GetType("System.Boolean");
   dtcCheck.DefaultValue = false;
   dtblFunctionalArea.Columns.Add(dtcCheck);

   //把表綁定到DataGrid
   dgdFunctionArea.DataSource = dtblFunctionalArea;

   //為DataGrid加載DataGridTableStyle樣式
   if(!dgdFunctionArea.TableStyles.Contains("FunctionArea"))
   {
    DataGridTableStyle dgdtblStyle = new DataGridTableStyle();
    dgdtblStyle.MappingName = dtblFunctionalArea.TableName;
    dgdFunctionArea.TableStyles.Add(dgdtblStyle);
    dgdtblStyle.RowHeadersVisible = false;
    dgdtblStyle.HeaderBackColor = Color.LightSteelBlue;
    dgdtblStyle.AllowSorting = false;
    dgdtblStyle.HeaderBackColor = Color.FromArgb(8,36,107);
    dgdtblStyle.RowHeadersVisible = false;
    dgdtblStyle.HeaderForeColor = Color.White;
    dgdtblStyle.HeaderFont = new System.Drawing.Font("Microsoft Sans Serif", 9F,
    System.Drawing.FontStyle.Bold,
    System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
    dgdtblStyle.GridLineColor = Color.DarkGray;
    dgdtblStyle.PreferredRowHeight = 22;
    dgdFunctionArea.BackgroundColor = Color.White;

    //設置列的寬度
    GridColumnStylesCollection colStyle = dgdFunctionArea.TableStyles[0].GridColumnStyles;
    colStyle[0].Width = 100;
    colStyle[1].Width = 50;
    colStyle[2].Width = 50;
    colStyle[3].Width = 80;
   }

   DataGridTextBoxColumn dgtb = (DataGridTextBoxColumn)dgdFunctionArea.TableStyles[0].GridColumnStyles[0];

   ComboBox cmbFunctionArea = new ComboBox();
   cmbFunctionArea.Items.AddRange(new object[]{"選項一","選項二","選項三"});
   cmbFunctionArea.Cursor = Cursors.Arrow;
   cmbFunctionArea.DropDownStyle= ComboBoxStyle.DropDownList;
   cmbFunctionArea.Dock = DockStyle.Fill;

   //在選定項發生更改并且提交了該更改后發生

   cmbFunctionArea.SelectionChangeCommitted += new  EventHandler(cmbFunctionArea_SelectionChangeCommitted);

   //把ComboBox添加到DataGridTableStyle的第一列

   dgtb.TextBox.Controls.Add(cmbFunctionArea);

  }

  //設置焦點模擬

  private void GetFocus(int row,int col)
  {
   //先把焦點移動到DataGrid
   this.dgdFunctionArea.Focus();
   //把焦點移動到DataGridCell
   DataGridCell dgc = new DataGridCell(row,col);
   this.dgdFunctionArea.CurrentCell = dgc;
   DataGridTextBoxColumn dgtb = (DataGridTextBoxColumn)dgdFunctionArea.TableStyles[0].GridColumnStyles[col];

   //設置焦點

   dgtb.TextBox.Focus();
  }

  //把Combobox上修改的數據提交到當前的網格

 private void cmbFunctionArea_SelectionChangeCommitted(object sender, EventArgs e)
 {
  this.dgdFunctionArea[this.dgdFunctionArea.CurrentCell] = ((ComboBox)sender).SelectedItem.ToString();

 }

 //設置新的焦點

 private void buttonFocus_Click(object sender, System.EventArgs e)
 {
  //焦點模擬,這里設置第三行第一列
  GetFocus(2,0);
 }
}

}

  下面是測試界面:

  總結,這里是通過DataGridTextBoxColumn.TextBox.Controls.Add方法實現在列中添加ComboBox控件;對于數據的保存是使用ComboBox.SelectionChangeCommitted事件來完成;設置焦點是通過DataGridTextBoxColumn.TextBox.Focus方法來實現。另外通過這個方法也可以添加DateTimePicker等類似的控件。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品久久久久久久久久ktv| 综合网中文字幕| 日韩成人av一区| 久久电影一区二区| 日韩免费av片在线观看| 久久久久久久久国产精品| 91精品视频在线播放| 日韩精品免费在线视频观看| 国内精品久久久久久中文字幕| 亚洲精品av在线播放| 亚洲欧美中文日韩在线| 国产精品久久久久久五月尺| 人人爽久久涩噜噜噜网站| 欧美精品在线极品| 中文综合在线观看| 欧美激情一二三| 色综合久久久久久中文网| 97av在线视频| 亚洲xxxx妇黄裸体| 色妞久久福利网| 高清一区二区三区四区五区| 欧洲一区二区视频| 欧美性受xxxx白人性爽| 国产欧美精品日韩精品| 日韩欧美精品在线观看| 自拍偷拍亚洲在线| 久久久综合免费视频| 久久久精品久久| 国产精品wwwwww| 国产成人久久久| 色妞欧美日韩在线| 国产一区二区三区免费视频| 亚洲精品欧美一区二区三区| 欧美激情视频在线免费观看 欧美视频免费一| 成人午夜一级二级三级| 国产精品日韩欧美综合| 综合网日日天干夜夜久久| 国产精品美腿一区在线看| 最近2019年手机中文字幕| 久久伊人精品天天| 清纯唯美日韩制服另类| 92看片淫黄大片欧美看国产片| 欧美精品激情blacked18| 久热精品视频在线观看一区| 欧美国产日本在线| 国产精品99导航| 亚洲第一中文字幕| 永久免费精品影视网站| 国产精品久久久久久久久久久久久| 国外成人在线播放| 国产精品网红直播| 欧美乱妇高清无乱码| 亚洲欧洲黄色网| 欧美一区二粉嫩精品国产一线天| 国产97色在线|日韩| 欧美另类在线播放| 亚洲女人被黑人巨大进入al| 亚洲欧美日韩天堂一区二区| 亚洲成人xxx| 国产精品流白浆视频| 美乳少妇欧美精品| 亚洲乱码一区av黑人高潮| 亚洲免费视频观看| 美女撒尿一区二区三区| 成人性生交大片免费看小说| 91在线直播亚洲| 国产精品久久久久久五月尺| 亚洲www永久成人夜色| 久久人人爽亚洲精品天堂| 久久激情视频久久| 日韩电视剧免费观看网站| 亚洲色图在线观看| 亚洲成人久久电影| 精品日韩视频在线观看| 欧美激情一二三| 国产精品高潮视频| 久久天天躁狠狠躁老女人| 欧美日韩在线视频首页| 中文字幕av一区| 国产日韩欧美在线看| 欧美精品video| 欧美最猛性xxxxx免费| 久久久久久久久网站| 欧美国产欧美亚洲国产日韩mv天天看完整| 国产大片精品免费永久看nba| 国产在线精品成人一区二区三区| 欧美性xxxxx| 91在线观看免费| 欧美黄色小视频| 在线观看91久久久久久| 欧美丰满片xxx777| 富二代精品短视频| 亚洲综合中文字幕在线| 欧美视频免费在线| 成人精品在线观看| 欧美一区二区三区免费观看| 亚洲自拍另类欧美丝袜| 97在线观看视频国产| 538国产精品一区二区在线| www国产精品com| 美女福利视频一区| 亚洲欧美精品中文字幕在线| 国模视频一区二区| 亚洲精品黄网在线观看| 久久久精品电影| 欧美成人精品激情在线观看| 国产精品一区二区三区久久| 久久久久九九九九| 久久香蕉国产线看观看av| 国产精品日韩欧美| 久久久久久综合网天天| 亚洲国产日韩一区| 最新国产成人av网站网址麻豆| 欧美在线视频观看| 日韩欧美在线一区| 亚洲美女精品成人在线视频| 精品久久久久久久久久久久| 神马久久久久久| 日韩精品极品毛片系列视频| 欧美性在线视频| 日韩成人av在线播放| 欧美第一页在线| 91在线视频免费| 亚洲精品午夜精品| 少妇久久久久久| 国产精品com| 日本精品久久中文字幕佐佐木| 欧美成人一区二区三区电影| 亚洲欧美日韩精品久久亚洲区| 成人福利免费观看| 国产精品日韩在线| 日本伊人精品一区二区三区介绍| 97超级碰在线看视频免费在线看| 亚洲v日韩v综合v精品v| 久久天堂电影网| 成人国产精品免费视频| 久久人人97超碰精品888| 久久精品成人欧美大片古装| 欧美激情视频网址| 影音先锋欧美精品| 亚洲精品福利在线| 亚洲精品欧美极品| 中文字幕在线成人| 欧美日韩国产一区二区| 性欧美办公室18xxxxhd| 精品一区精品二区| 国产精品热视频| 亚洲qvod图片区电影| 色偷偷偷综合中文字幕;dd| 久久久久久久999精品视频| 大胆欧美人体视频| 日韩免费高清在线观看| 国产欧美日韩亚洲精品| 亚洲丝袜一区在线| 欧美日韩一区二区三区在线免费观看| 91精品视频在线| 国产精品一区二区在线| 91精品国产综合久久香蕉的用户体验| 成人疯狂猛交xxx| 亚洲成人av在线播放| 日韩精品中文字幕视频在线| 亚洲第一区在线| 国产精品一久久香蕉国产线看观看| 精品国产一区二区在线|