dataGridTextboxColumnのすべての値を取得します。
-
16-09-2019 - |
質問
私はタイプSystem.DataTimeのある期日と呼ばれる列を持っているのDataGridViewを持っています。私は、月表示カレンダにこれらの日付を入れたいです。私は、列throught反復処理する必要がありますか?私はそれをキャストする必要がありますか?
解決
各列から日付を取得するにはYES、あなたは、列のすべての行を反復処理する必要があります。あなたがテキストとして日付を表示しているとして、あなたはDateTime.Parse
やDateTime.TryParse
メソッドを使用して解析する必要があります。
EDIT: - これはフォームアプリケーションであると仮定。私はDataGridView
、MonthCalendar
とButton
を追加しました。私は月のCALでGridViewの大胆な選択された日付から日付を取得することができました。
public Form2()
{
InitializeComponent();
CreateData();
}
private void CreateData()
{
var dtb = new DataTable();
dtb.Columns.Add("Column1");
dtb.Columns.Add("Column2");
dtb.Columns.Add("Column3");
var dt = DateTime.Now;
var rand = new Random();
for (var i = 0; i < 10; i++)
{
var r = dtb.NewRow();
r.ItemArray = new object[] {dt.ToString("ddd"), dt.ToString("MMM"), dt};
dt = dt.AddDays(rand.Next(30));
dtb.Rows.Add(r);
}
dataGridView1.DataSource = dtb;
}
private void button1_Click(object sender, EventArgs e)
{
var bds = new List<DateTime>();
foreach (DataGridViewRow row in dataGridView1.Rows)
{
DateTime dt;
var b = DateTime.TryParse(row.Cells[row.Cells.Count - 1].Value+"", out dt);
if(!b) continue;
bds.Add(dt);
}
cal.BoldedDates = bds.ToArray();
}
所属していません StackOverflow