2017-06-07 12 views
0
private void btnShowCausali_Click(object sender, EventArgs e) 
{    
    DataGridView Dati = new DataGridView(); 
    Dati.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; 
    Dati.Location = new System.Drawing.Point(120, 40); 
    Dati.Name = "Dati"; 
    Dati.RowTemplate.Height = 24; 
    Dati.Size = new System.Drawing.Size(979, 458); 
    Dati.TabIndex = 1; 
    Dati.Visible = true; 
    Dati.Columns.Add("id", "ID"); 
    Dati.Columns.Add("causaliname", "Nome Causale"); 
    Dati.Columns.Add("Identificationcode", "Codice Identificativo"); 
    Dati.Columns.Add("expired", "Data di Scadenza"); 
    grpDatore.Controls.Add(Dati);  
} 

このコードを実行すると、DataGridViewがフォームに表示されません。問題が発生した場合に備えて、ボタンbtnShowCausaliがフォームのロード時に作成されます。フォームに動的にDataGridViewを追加する必要があります

public void Form1_Load(object sender, EventArgs e) 
{ 
    Button btnShowCausali = new Button(); 
    btnShowCausali.Text = "Causali"; 
    btnShowCausali.Location = new Point(20, 20); 
    btnShowCausali.Size = new Size(120, 40); 
} 

ちなみに、ボタンが実際に作成される理由はわかりませんが、DataGridViewではそのようなことはありません。

+0

何が ''あなたはthis.Controls.Add(DATI)のような 'Form'に追加する必要がありますgrpDatore'' –

+1

あなたは 'btnShowCausali'が作成されていることを確認していますか?それはあなたのフォームに追加していないからです! –

+0

VSのビジュアルデザイナーを使用してください。なぜこれを手動で行うのですか? – i486

答えて

2

イベントハンドラbtnShowCausali_Clickは、Form1_Loadのボタンには関連付けられていません。それは本当に呼ばれていますか? このボタンを任意のコンテナ(フォーム、パネル、...)に追加することもありません DataGridViewはgrpDatoreコントロール(フォームではありません)に追加されますので、Locationを設定する際に注意してください。ボタンが動的に作成されている場合、UIに追加し、すべての

btnShowCausali.Click += btnShowCausali_Click; 
+0

どのように行うのですか?私はそれを –

+0

と呼んでいます。この作品は、ありがとうございます! –

1

まず:

イベントを接続します。

Button btnShowCausali = new Button(); 
btnShowCausali.Text = "Causali"; 
btnShowCausali.Location = new Point(20, 20); // Make shure there aren't other controls in this point 
btnShowCausali.Size = new Size(120, 40); 
this.Controls.Add(btnShowCausali); //Adding the button to the form 

はその後、あなたはボタンのClickイベントのイベントハンドラをアタッチする必要があります。つまり、ボタンをクリックしたときに何をすべきかをボタンに伝える必要があります。

  1. コード:(コンストラクタで)InitializeComponent関数呼び出しの後またはフォームのLoadイベントでbtnShowCausali.Click += btnShowCausali_Click;を追加あなたは、クリックイベントのイベントハンドラを追加するための2つのオプションがあります。

    private void btnShowCausali_Click(object sender, EventArgs e) 
    { 
        DataGridView Dati = new DataGridView(); 
        Dati.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; 
        Dati.Location = new System.Drawing.Point(120, 40); 
        Dati.Name = "Dati"; 
        Dati.RowTemplate.Height = 24; 
        Dati.Size = new System.Drawing.Size(979, 458); 
        Dati.TabIndex = 1; 
        Dati.Visible = true; 
        Dati.Columns.Add("id", "ID"); 
        Dati.Columns.Add("causaliname", "Nome Causale"); 
        Dati.Columns.Add("Identificationcode", "Codice Identificativo"); 
        Dati.Columns.Add("expired", "Data di Scadenza"); 
        grpDatore.Controls.Add(Dati); // DataGridView added to grpDatore, not form. Make shure grpDatore is visible. 
    } 
    
  2. デザイナー:ボタンをダブルクリックして機能btnShowCausali_Clickを追加します。 Visual Studioはあなたのために魔法を実行します。

関連する問題