如何在DataGridView中加入自定义组件.doc
文本预览下载声明
HYPERLINK /turejackon/article/details/6326442 如何在DataGridView中加入自定义组件
我想在DataGridView编辑时显示如下图控件:
?
(1)创建一个自定义组件UserControl,并继承IDataGridViewEditingControl接口(用意:在DataGridView进入编辑状态时可以调用该控件),添加如下代码:
using System;using System.Collections.Generic;using System.ComponentModel;using System.Drawing;using System.Data;using System.Text;using System.Windows.Forms;
namespace Class.baseSys.controlSys{
??? public partial class UserControl1 : UserControl, IDataGridViewEditingControl??? {??????? int rowIndex;??????? DataGridView dataGridView;??????? private bool valueChanged = false;?
??????? public UserControl1()??????? {??????????????????????? InitializeComponent();??????? }
??????? /// summary????????? /// 更改控件的用户界面 (UI),使之与指定单元格样式一致。????????? /// /summary????????? /// param name=dataGridViewCellStyle要用作用户界面的模型的 System.Windows.Forms.DataGridViewCellStyle。/param????????? public void ApplyCellStyleToEditingControl(DataGridViewCellStyle dataGridViewCellStyle)??????? {??????????? this.Font = dataGridViewCellStyle.Font;??????????? this.textBox1.ForeColor = dataGridViewCellStyle.ForeColor;??????????? this.textBox1.BackColor = dataGridViewCellStyle.BackColor;???????? }
??????? /// summary????????? /// 确定指定的键是应由编辑控件处理的常规输入键,还是应由 System.Windows.Forms.DataGridView 处理的特殊键。????????? /// /summary????????? /// param name=key一个 System.Windows.Forms.Keys,表示按下的键。/param????????? /// param name=dataGridViewWantsInputKey当 System.Windows.Forms.DataGridView 要处理 keyData 中的 System.Windows.Forms.Keys时,则为 true;否则为 false。/param????????? /// returns如果指定的键是应由编辑控件处理的常规输入键,则为 true;否则为 false。/returns????????? public bool EditingControlWantsInputKey(Keys keyData, bool dataGridViewWantsInputKey)??????? {??????????? switch (keyData Keys.KeyCode)???? //设置方向键等都不令其进入编辑状态??????????? {??????????????? case Keys.Left:??????????????? case Keys.Up:??????????????? case Keys.Down:??????????????? case Keys.Right:??????????????? case Keys.Home:??????????????? case Keys.End:??????????
显示全部