私はWinformsを初めて使用していて、2つのフォームを持つサンプルアプリケーションを試していました。
DatagridにWinformsのデータが表示されない
- Form1がテキストボックス、コンボボックス、ラジオボタン、送信ボタン
- のForm2を持っていることをForm1により送信されたデータを表示するようになっているデータグリッドを持っています。
をForm1
DataFetch fetch ;
public Form1()
{
InitializeComponent();
fetch = new DataFetch();
comboBox1.DataSource = fetch.getDesignation();
comboBox1.DisplayMember = "Name";
comboBox1.ValueMember = "Id";
radioButton1.Checked = true;
}
private void button1_Click(object sender, EventArgs e)
{
Employee employee = new Employee();
employee.Designation = comboBox1.SelectedText==""?"Admin":comboBox1.SelectedText;
employee.IsCertified = radioButton1.Checked == true ? true : false;
employee.name = textBox1.Text;
Form2 form = new Form2(employee);
form.Show();
}
フォーム2
public partial class Form2 : Form
{
public Form2(Employee employee)
{
InitializeComponent();
dataGridView1.DataSource = employee;
}
}
のForm2デザイナコード
partial class Form2
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.dataGridView1 = new System.Windows.Forms.DataGridView();
((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).BeginInit();
this.SuspendLayout();
//
// dataGridView1
//
this.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dataGridView1.Location = new System.Drawing.Point(72, 93);
this.dataGridView1.Name = "dataGridView1";
this.dataGridView1.Size = new System.Drawing.Size(240, 150);
this.dataGridView1.TabIndex = 0;
this.dataGridView1.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dataGridView1_CellContentClick_1);
//
// Form2
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(460, 346);
this.Controls.Add(this.dataGridView1);
this.Name = "Form2";
this.Text = "Form2";
((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).EndInit();
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.DataGridView dataGridView1;
}
私はForm2ののコンストラクタでデータを取得することができていますが、まだ私はこの中で、グリッドにバインドすることはできませんよそのケースをグリッドに示します。
デザイナーで 'dataGridView1'に' AutoGenerateColumns'を設定しましたか?デザイナーを 'dataGridView1'と共有する方が良いでしょう。 – praty