c#如何?在datagridview中加入時間控制項

來源:互聯網
上載者:User

標籤:c#   datagridview   

由於時間原因,再加之自己懶惰!好久沒寫部落格了,今天寫一篇關於datagridview中如何?時間控制項的文章,算是繼續自己的記錄的習慣!

  首先,我們知道datagridview中並不提供控制項,因此,我們無法直接使用!對此我們可以進行如下操作,從而實現在datagridview中插入時間控制項。

一、聲明控制項

  我們首先要做的便是聲明一個時間控制項,這個不必詳細多說了,有兩種方式:

  1、直接在工具列中進行拖拽

  2、在表單的designer.cs檔案中進行聲明。

  無論哪種方式,都可以,代碼如下:

       private DateTimePicker date;
            //             // date            //             this.date.Location = new System.Drawing.Point(230, 41);            this.date.Name = "date";            this.date.Size = new System.Drawing.Size(200, 25);            this.date.TabIndex = 18;            this.date.Visible = false;  //這裡是讓控制項先進行隱藏            this.date.ValueChanged += new System.EventHandler(this.date_ValueChanged);//該事件是對時間控制項值改變時的操作,具體實現內容後邊將進行說明。
這樣,我們就將時間控制項聲明好了!

二、進行賦值

//全域變數private DataGridViewTextBoxCell partytime;


private void gridX_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e){                                   #region 如何顯示入黨時間控制項//date.left:表示控制項在工作區距離左邊的距離(像素)。該工作區指的是表單。//this.gridX.left:gridX是datagridview名字,這裡是獲得datagridview控制項與工作區左邊緣的距離,//this.gridX.GetCellDisplayRectangle(e.ColumnIndex, e.RowIndex, false).X:返回選擇儲存格的左邊座標,該座標值是相對與datagridview左邊距離//這樣我們就可以將時間控制項的位置“畫在”工作區中,你可以理解為我們拖著這個時間控制項到了精確的位置。date.Left = this.gridX.Left + this.gridX.GetCellDisplayRectangle(e.ColumnIndex, e.RowIndex, false).X;//該代碼同上,只是擷取的是上邊的距離。這樣實際我們就控制住了這個時間控制項的左上方,至於大小我們可以自行設計。            date.Top = this.gridX.Top + this.gridX.GetCellDisplayRectangle(e.ColumnIndex, e.RowIndex, false).Y;            partytime = ((DataGridViewTextBoxCell)gridX.Rows[e.RowIndex].Cells["partyDate"]);//這裡聲明一個DataGridViewTextBoxCell用來擷取datagridview中partydate那列現在的值。                        if (e.ColumnIndex == 9)//擷取所在列,注意datagridview中序號是從0開始的。            {//下面代碼是讓控制項顯示時間:1、若沒有時間,則控制項時間顯示目前時間 2、若datagridview中有時間則顯示具體時間。                if (this.gridX.Rows[e.RowIndex].Cells[e.ColumnIndex].Value == null || this.gridX.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString() == "")                {                    this.date.Value = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd"));                    this.date.Visible = true;                }                else                {                    this.date.Value = Convert.ToDateTime(this.gridX.Rows[e.RowIndex].Cells[e.ColumnIndex].Value);                    this.date.Visible = true;                }            }            else            {                this.date.Visible = false;            }            #endregion                   }


三、控制項日期選擇改變操作

<pre name="code" class="csharp"> private void date_ValueChanged(object sender, EventArgs e)        {            ////this.dateTimePicker1.Visible = false;            partytime.Value = this.date.Value;//時間控制項值改變在將其複製給聲明的那個DataGridViewTextBoxCell,然後進而改變datagridview相應列的值            this.date.Format = DateTimePickerFormat.Custom;            this.date.CustomFormat = "yyyy-MM-dd";            //this.gridX.CurrentCell.Value = this.date.Value;            this.date.Visible = false;        }




至此時間控制項在datagridview中的插入完畢!



c#如何?在datagridview中加入時間控制項

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.