国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
在DataGrid中使用下拉列表框和設(shè)置焦點(diǎn)[翻譯]
在DataGrid中簡單使用下拉列表框  
作者:Tushar Ameta
 
翻譯:鄭佐
     在DataGrid中使用下拉列表問題。這篇文章講了如何在 System.Windows.Forms.DataGrid中切入使用ComboBox控件。不過原文不全,無法調(diào)試,在這里為了說清楚點(diǎn),對(duì)原文作了一些修改,整篇文章主要包括三方面的內(nèi)容。
1.   在DataGrid中加入ComboBox列;
2.   把在DataGrid中的修改保存到對(duì)應(yīng)的網(wǎng)格;
3.   設(shè)置DataGrid中網(wǎng)格的焦點(diǎn)。
 下面是整個(gè)源代碼,一些功能可以看注釋。 
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 窗體設(shè)計(jì)器生成的代碼
         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 = "獲取焦點(diǎn)";
              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>
         /// 應(yīng)用程序的主入口點(diǎn)。
         /// </summary>
         [STAThread]
         static void Main()
         {
              Application.Run(new Form1());
         }
         //初始化DataGrid
         private void PopulateGrid()
         {
              //創(chuàng)建一個(gè)DataTable對(duì)象,包括四列,前三列為String,最后一列為Boolean。
              dtblFunctionalArea  = new DataTable ("FunctionArea");
              string[] arrstrFunctionalArea = new string [3]{"Functional Area","Min","Max"};
              DataColumn dtCol = null;
              //創(chuàng)建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);              
              }    
 
              //創(chuàng)建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; 
 
                   //設(shè)置列的寬度 
                   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[]{"選項(xiàng)一","選項(xiàng)二","選項(xiàng)三"});
              cmbFunctionArea.Cursor = Cursors.Arrow;
              cmbFunctionArea.DropDownStyle= ComboBoxStyle.DropDownList;
              cmbFunctionArea.Dock = DockStyle.Fill;
              //在選定項(xiàng)發(fā)生更改并且提交了該更改后發(fā)生
              cmbFunctionArea.SelectionChangeCommitted += new EventHandler(cmbFunctionArea_SelectionChangeCommitted);
              //把ComboBox添加到DataGridTableStyle的第一列
              dgtb.TextBox.Controls.Add(cmbFunctionArea);            
 
         }
         //設(shè)置焦點(diǎn)模擬
         private void GetFocus(int row,int col)
         {
              //先把焦點(diǎn)移動(dòng)到DataGrid
              this.dgdFunctionArea.Focus();  
              //把焦點(diǎn)移動(dòng)到DataGridCell
              DataGridCell dgc = new DataGridCell(row,col);
              this.dgdFunctionArea.CurrentCell = dgc;
              DataGridTextBoxColumn dgtb = (DataGridTextBoxColumn)dgdFunctionArea.TableStyles[0].GridColumnStyles[col];
              //設(shè)置焦點(diǎn)
              dgtb.TextBox.Focus();
 
         }         
         //把Combobox上修改的數(shù)據(jù)提交到當(dāng)前的網(wǎng)格
         private void cmbFunctionArea_SelectionChangeCommitted(object sender, EventArgs e)
         {
              this.dgdFunctionArea[this.dgdFunctionArea.CurrentCell] = ((ComboBox)sender).SelectedItem.ToString();
         }       
         //設(shè)置新的焦點(diǎn)
         private void buttonFocus_Click(object sender, System.EventArgs e)
         {
              //焦點(diǎn)模擬,這里設(shè)置第三行第一列
              GetFocus(2,0);
         }
     }
}

 下面是測(cè)試界面:
 
          總結(jié),這里是通過DataGridTextBoxColumn.TextBox.Controls.Add方法實(shí)現(xiàn)在列中添加ComboBox控件;對(duì)于數(shù)據(jù)的保存是使用ComboBox.SelectionChangeCommitted事件來完成;設(shè)置焦點(diǎn)是通過DataGridTextBoxColumn.TextBox.Focus方法來實(shí)現(xiàn)。另外通過這個(gè)方法也可以添加DateTimePicker等類似的控件。
 
本文來自CSDN博客,轉(zhuǎn)載請(qǐng)標(biāo)明出處:http://blog.csdn.net/zhzuo/archive/2004/05/31/22036.aspx
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Visual?C#?windows窗體示例主題(二)(MSDN整理)
DataGrid 內(nèi)嵌ComboBox動(dòng)態(tài)數(shù)據(jù)聯(lián)動(dòng)
Easyui datagrid editor為combobox時(shí)指定數(shù)據(jù)源
為ComboBox控件添加圖片
AD相關(guān)信息
代碼自動(dòng)生成工具M(jìn)yGeneration之二
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服