datagridview 中如何添加时间控件? 一个小的录入工具,录入后,在datagridview中 "时间"一列中选择时间。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 添加日期控件?那你需要 datagridview自定义列参考:MSDNhttp://msdn.microsoft.com/en-us/library/7tas5c80.aspx http://blog.csdn.net/zx13525079024/article/details/4814642 之前我发了个一样的帖子,估计太麻烦了也没有人回。http://topic.csdn.net/u/20120324/10/387d518f-6aaa-498d-ba11-2008495a7f2d.html 这里有添加日期控件代码http://www.xueit.com/html/2010-08/21-715684009201088154711140.html 1、新建一个日期控件。2、this.dgvl.Controls.Add(日期控件);3、在CurrentCellChanged事件中用GetCellDisplayRectangle获取CELL的值建立一个Rectangle。4、给日期控件的长宽高赋值。5、添加日期控件SelectedIndexChanged事件,给当前CELL赋值。 public partial class Form1 : Form{ InitializeComponent(); dataGridView1.Controls.Add(dtp); //把时间控件加入DataGridView dtp.Visible = false; //先不让它显示 dtp.Format = DateTimePickerFormat.Custom; //设置日期格式为2010-08-05 dtp.TextChanged += new EventHandler(dtp_TextChange); //为时间控件加入事件dtp_TextChange}DateTimePicker dtp = new DateTimePicker(); //这里实例化一个DateTimePicker控件Rectangle _Rectangle;/*************时间控件选择时间时****************/void dtp_TextChange(object sender, EventArgs e){ dataGridView1.CurrentCell.Value = dtp.Text.ToString(); //时间控件选择时间时,就把时间赋给所在的单元格}void nGridView1_ColumnWidthChanged(object sender, DataGridViewColumnEventArgs e){ dtp.Visible = false;}private void dataGridView1_Scroll(object sender, ScrollEventArgs e){ dtp.Visible = false;}private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e){ if (e.ColumnIndex == 0) { _Rectangle = dataGridView1.GetCellDisplayRectangle(e.ColumnIndex, e.RowIndex, true); //得到所在单元格位置和大小 dtp.Size = new Size(_Rectangle.Width, _Rectangle.Height); //把单元格大小赋给时间控件 dtp.Location = new Point(_Rectangle.X, _Rectangle.Y); //把单元格位置赋给时间控件 dtp.Visible = true; //可以显示控件了 } else dtp.Visible = false;}测试通过!求分 楼上的行是行,但是如果不对时间控件进行点击操作的话,按Tab 按键的话 时间不会显示出来的,不知道你们测试过没 combobox未设置selectindex,为什么在win7下会闪一下? Excel导入dataset合并单元格 c# treenode 调用 窗口内容的改变问题!! 关于DataSet里的DefaultView 控件上Load事件里的绑定问题:AddNew后的赋值无效. 界面中菜单调用窗口问题----急!!---50分 如何打开现有项目ASP 请各位c#同仁进来讨论一下,c#中的windows编程,对于数据库的增删改操作,使用本地的DataSet,如何防止关系数据的并发更新,你们通常都采 那位大哥推荐一本C#的好书吧!小弟不胜感激呀! 手机支付的输入控件 母版页获取控件位置出错!
那你需要 datagridview自定义列参考:MSDNhttp://msdn.microsoft.com/en-us/library/7tas5c80.aspx
http://blog.csdn.net/zx13525079024/article/details/4814642
http://www.xueit.com/html/2010-08/21-715684009201088154711140.html
2、this.dgvl.Controls.Add(日期控件);
3、在CurrentCellChanged事件中用GetCellDisplayRectangle获取CELL的值建立一个Rectangle。
4、给日期控件的长宽高赋值。
5、添加日期控件SelectedIndexChanged事件,给当前CELL赋值。
{
InitializeComponent();
dataGridView1.Controls.Add(dtp); //把时间控件加入DataGridView
dtp.Visible = false; //先不让它显示
dtp.Format = DateTimePickerFormat.Custom; //设置日期格式为2010-08-05
dtp.TextChanged += new EventHandler(dtp_TextChange); //为时间控件加入事件dtp_TextChange
}DateTimePicker dtp = new DateTimePicker(); //这里实例化一个DateTimePicker控件
Rectangle _Rectangle;/*************时间控件选择时间时****************/
void dtp_TextChange(object sender, EventArgs e)
{
dataGridView1.CurrentCell.Value = dtp.Text.ToString(); //时间控件选择时间时,就把时间赋给所在的单元格
}void nGridView1_ColumnWidthChanged(object sender, DataGridViewColumnEventArgs e)
{
dtp.Visible = false;
}private void dataGridView1_Scroll(object sender, ScrollEventArgs e)
{
dtp.Visible = false;
}private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex == 0)
{
_Rectangle = dataGridView1.GetCellDisplayRectangle(e.ColumnIndex, e.RowIndex, true); //得到所在单元格位置和大小
dtp.Size = new Size(_Rectangle.Width, _Rectangle.Height); //把单元格大小赋给时间控件
dtp.Location = new Point(_Rectangle.X, _Rectangle.Y); //把单元格位置赋给时间控件
dtp.Visible = true; //可以显示控件了
}
else
dtp.Visible = false;
}
测试通过!求分