概要
cscの作法、調べてみた。
練習問題、やってみた。
練習問題
datagridviewの入力にDatetimePickerを使え。
写真
サンプルコード
using System;
using System.Windows.Forms;
using System.Drawing;
public partial class form1: Form {
DateTimePicker cal1;
DataGridView dg1;
int row,
coloum;
public form1() {
Text = "calender";
ClientSize = new Size(600, 400);
dg1 = new DataGridView();
dg1.Location = new Point(50, 20);
dg1.Width = 500;
dg1.Height = 300;
Controls.AddRange(new Control[] {
dg1
});
dg1.ColumnCount = 4;
dg1.Columns[0].HeaderText = "ID";
dg1.Columns[1].HeaderText = "日付";
dg1.Columns[2].HeaderText = "商品";
dg1.Columns[3].HeaderText = "個数";
dg1.Rows.Add(new Object[] {1, "6/8/2023", "みかん", 100});
dg1.Rows.Add(new Object[] {2, "6/8/2023", "りんご", 300});
dg1.Rows.Add(new Object[] {3, "6/8/2023", "バナナ", 200});
dg1.Rows.Add(new Object[] {4, "6/8/2023", "すいか", 300});
dg1.Rows.Add(new Object[] {5, "6/8/2023", "いちご", 200});
dg1.Rows.Add(new Object[] {6, "6/8/2023", "メロン", 100});
dg1.Columns[0].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
dg1.Columns[2].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
dg1.CellClick += new DataGridViewCellEventHandler(OnChanged);
}
private void OnChanged(object sender, DataGridViewCellEventArgs e) {
if (e.ColumnIndex == 1)
{
cal1 = new System.Windows.Forms.DateTimePicker();
Rectangle dgvRectangle = dg1.GetCellDisplayRectangle(e.ColumnIndex, e.RowIndex, true);
cal1.Location = new Point(dgvRectangle.X, dgvRectangle.Y);
cal1.CloseUp += cal1_DateSelected;
dg1.Controls.Add(cal1);
cal1.Show();
coloum = e.ColumnIndex;
row = e.RowIndex;
}
}
private void cal1_DateSelected(object sender, System.EventArgs e) {
dg1[coloum, row].Value = cal1.Value.ToString("MM/dd/yyyy");
(sender as DateTimePicker).Dispose();
}
[STAThread]
public static void Main() {
Application.Run(new form1());
}
}
以上。