zoukankan      html  css  js  c++  java
  • C#DataGridView添加DateTimePicker时间控件

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    namespace Test
    {
          
        public partial class Form1: Form
        {
            DateTimePicker  dtp = new DateTimePicker();  //实例化一个DateTimePicker控件
             Rectangle _Rectangle;
            public Form1()
            {
                InitializeComponent();
                dataGridView1.Controls.Add(dtp);  //将时间控件加入DataGridView
                dtp.Visible = false;  //先不显示
                dtp.Format = DateTimePickerFormat.Custom;  //设置日期格式,2017-11-11
                dtp.TextChanged += new EventHandler(dtp_TextChange); //为时间控件加入事件dtp_TextChange
            }
    /*************时间控件选择时间时****************/
            private void dtp_TextChange(object sender, EventArgs e)
            {
                dataGridView1.CurrentCell.Value = dtp.Text.ToString();  //时间控件选择时间时,将时间内容赋给所在的单元格
                        }
    /****************单元格被单击,判断是否是放时间控件的那一列*******************/
            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;
            }
    /***********当列的宽度变化时,时间控件先隐藏起来,否则单元格宽高变化时时间控件无法跟着变***********/
            private void dataGridView1_ColumnWidthChanged(object sender, DataGridViewColumnEventArgs e)
            {
                dtp.Visible = false;
                
            }
    /***********滚动条滚动时,单元格位置发生变化,也隐藏时间控件,否则时间控件位置不动就乱了********/
            private void dataGridView1_Scroll(object sender, ScrollEventArgs e)
            {
                dtp.Visible = false;
            }
        }
    }
  • 相关阅读:
    【bzoj3774】最优选择 网络流最小割
    【bzoj3697】采药人的路径 树的点分治
    【bzoj3576】[Hnoi2014]江南乐 博弈论+SG定理+数学
    【bzoj3451】Tyvj1953 Normal 期望+树的点分治+FFT
    【bzoj2906】颜色 分块
    【bzoj5028】小Z的加油店 扩展裴蜀定理+差分+线段树
    【bzoj2257】[Jsoi2009]瓶子和燃料 扩展裴蜀定理+STL-map
    【bzoj4542】[Hnoi2016]大数 莫队算法
    【bzoj4182】Shopping 树的点分治+dfs序+背包dp
    【bzoj2560】串珠子 状压dp+容斥原理
  • 原文地址:https://www.cnblogs.com/turingchang/p/7821663.html
Copyright © 2011-2022 走看看