DefaultValuesNeededイベントは、新規行の入力が
要求された際に発生するイベントです。
新規行が作成される際のデフォルトの値は、ドキュメントに
あるようにCellTemplateプロパティからの値が使用されます。
DefaultValuesNeededイベントを利用するとその値を
上書きして規定値を行に表示させることが出来ます。
以下サンプルです。
// vim:set ts=4 sw=4 et ws is nowrap ft=cs: using System; using System.Drawing; using System.Windows.Forms; using Gsf.Samples.Utility; namespace Gsf.Samples.DGV{ /// <summary> /// DefaultValuesNeededイベントのサンプルです。 /// </summary> /// <remarks> /// DefaultValuesNeededイベントは、新規行の入力が /// 要求された際に発生するイベントです。 /// /// 新規行が作成される際のデフォルトの値は、ドキュメントに /// あるようにCellTemplateの値が使用されます。 /// /// DefaultValuesNeededイベントを利用するとその値を /// 上書きして規定値を行に表示させることが出来ます。 /// </remarks> public class DataGridViewSample17 : BaseForm{ public DataGridViewSample17() : base(typeof(DataGridViewSample17).FullName){ // nop; } protected override void InitializeComponents(){ DataGridView grid = new DataGridView(); grid.Name = "grid"; grid.Dock = DockStyle.Fill; grid.AutoGenerateColumns = true; grid.DataSource = GetDataSource(); grid.EditMode = DataGridViewEditMode.EditOnEnter; // // イベント設定 // grid.DefaultValuesNeeded += OnDefaultValuesNeeded; Controls.Add(grid); Load += delegate(object sender, EventArgs e){ // Idのカラムを読み取り専用に ((DataGridView) ((Form) sender).Controls.Find("grid", false)[0]).Columns["Id"].ReadOnly = true; }; Size = new Size(400, 300); } void OnDefaultValuesNeeded(object sender, DataGridViewRowEventArgs e){ // IDの値はシステム側で採番する e.Row.Cells["Id"].Value = Guid.NewGuid().ToString(); } object GetDataSource(){ BindingSource source = new BindingSource(); source.DataSource = typeof(Sample); return source; } [STAThread] static void Main(){ ApplicationUtility.Launch(typeof(DataGridViewSample17).FullName); } } internal class Sample{ string _id; string _name; public Sample() : this(null, null){ // nop; } public Sample(string id, string name){ _id = id; _name = name; } public string Id{ get{ return _id; } set{ _id = value; } } public string Name{ get{ return _name; } set{ _name = value; } } } }
================================
過去の記事については、以下のページからご参照下さい。
- いろいろ備忘録日記まとめ
サンプルコードは、以下の場所で公開しています。
- いろいろ備忘録日記サンプルソース置き場