1. using System;
2. using System.Collections.Generic;
3. using System.ComponentModel;
4. using System.Data;
5. using System.Drawing;
6. using System.Text;
7. using System.Windows.Forms;
8.
9. namespace DataGridViewDateTimePicker
10. {
11. public partial class MainForm : Form
12. {
13. private bool _CheckChange = false;
14.
15. public MainForm()
16. {
17. InitializeComponent();
18. }
19.
20. private void MainForm_Load(object sender, EventArgs e)
21. {
22. // TODO: 這行程式碼會將資料載入 'database1DataSet.Table1' 資料表。您可以視需要進行移動或移除。
23. this.table1TableAdapter.Fill(this.database1DataSet.Table1);
24.
25. //設定DateTimePicker的高度
26. this.dateTimePicker1.Height = this.dataGridView1.Height;
27. }
28.
29. //將DateTimePicker控制項定位在DataGridView的Column上
30. private void dataGridView1_CellEnter(object sender, DataGridViewCellEventArgs e)
31. {
32. if (this.dataGridView1.Columns[e.ColumnIndex].HeaderText == "date")
33. {
34. Rectangle r = this.dataGridView1.GetCellDisplayRectangle(e.ColumnIndex, e.RowIndex, false);
35. r = this.dataGridView1.RectangleToScreen(r);
36. this.dateTimePicker1.Location = this.RectangleToClient(r).Location;
37. this.dateTimePicker1.Size = r.Size;
38. this._CheckChange = true;
39. this.dateTimePicker1.Text = this.dataGridView1.CurrentCell.Value.ToString();
40. this._CheckChange = false;
41. this.dateTimePicker1.Visible = true;
42. }
43. else
44. {
45. this.dateTimePicker1.Visible = false;
46. }
47. }
48.
49. //改變Column的值
50. private void dateTimePicker1_ValueChanged(object sender, EventArgs e)
51. {
52. if (_CheckChange) return;
53. this.dataGridView1.CurrentCell.Value = this.dateTimePicker1.Text;
54. }
55. }
56. }
沒有留言:
張貼留言