4

列が存在するかどうかを確認したいので、データベースからのデータをにバインドし、DataGridViewリンク ボタンを列として追加しましたDataGridView。ボタンクリックイベントで次のコードを使用しました。

con.Open();
SqlDataAdapter dadatagrid1 =
    new SqlDataAdapter("SELECT * FROM Stocktransferlocation", con);
DataSet dsdatagrid1 = new DataSet();
dadatagrid1.Fill(dsdatagrid1);
dataGridView_stocktransferlist.DataSource = dsdatagrid1.Tables[0];
con.Close();

DataGridViewLinkColumn btn = new DataGridViewLinkColumn();
dataGridView_stocktransferlist.Columns.Add(btn);
btn.HeaderText = "Click";
btn.Text = "Click Here";
btn.Name = "btn";
btn.UseColumnTextForLinkValue = true;

ここで私の問題:追加ボタンをクリックすると、データが保存され、クリックリンクが表示されます。次回クリックすると、クリックが2回表示されます。

列がデータグリッドに存在するかどうかを確認したいだけです。私は試した

if (dataGridView_stocktransferlist.Columns.Contains("Click") == true)

しかし、それは機能していません。

4

2 に答える 2

11

列名が'Click' ではなく'btn'であるため、Containsメソッドは失敗します。

ドキュメントでわかるように、メソッドが動作 する列名を定義するDataGridViewLinkColumnプロパティです。NameContains

だからあなたのコードは

if (dataGridView_stocktransferlist.Columns.Contains("btn") == true
{
    .....
}

しかし、ボタンに「btnLinkForEdit」のようなわかりやすい名前を付け、それに応じて if を変更することをお勧めします。

于 2012-10-11T09:15:10.003 に答える
0

次のように確認する必要があります。

if (dataGridView_stocktransferlist.Columns.Contains("btn"))
{
  //your code
}
于 2012-10-11T09:16:02.540 に答える