1
私はcolumncontentclickedのイベントハンドラを持っており、ストアドプロシージャでデータリストを短くするまでうまくいきます。その後、returnのindexnumは5または6ではなく0になります。 DataGridviewなどをリフレッシュする必要がありますか?私は私の問題を発見したC#datagridview間違った列インデックス
int lastcol = dataGridView1.Columns.Count;
// MessageBox.Show(e.ColumnIndex.ToString() + lastcol.ToString());
if (e.ColumnIndex == lastcol - 1)
{
int index = int.Parse(dataGridView1.CurrentRow.Cells[0].Value.ToString());
Global.size = this.Size;
Global.position = this.Location;
Global.overzicht_select = index.ToString();
if (Global.give_return == false)
{
switch(type)
{
case 1:
Global.edit_form_proj = false;
project_form project_form1 = new project_form(this);
project_form1.Show(this);
this.Hide();
break;
case 2:
Global.edit_form_bedr = false;
bedrijf_form bedrijf_form1 = new bedrijf_form(this);
bedrijf_form1.Show(this);
this.Hide();
break;
case 3:
Global.edit_form_pers = false;
persoon_form persoon_form1 = new persoon_form(this);
persoon_form1.Show(this);
this.Hide();
break;
}
}
else
{
Global.return_id = index.ToString();
if (pf != null)
{
pf.fill_id();
}
if (pr != null)
{
pr.fill_id();
}
Global.give_return = false;
Close();
}
}
}
}
'dataGridView1.DataBind()'を呼び出そうとしましたか? –
ビジュアルスタジオはDatabind()と呼ばれるメソッドを知らないようです、私はフィルタを適用した後に新しいバインディングコンテキストを作成します。これはあなたの意味ですか? – Daanvl
私の問題が見つかりました。私がクリックしたいと思っていた列はbuttoncolumn、グリッドをロードするときに追加する魔法です。フィルタ後にその列が更新されたり、新しいデータが取得されたりするので、他の列が再構築されている間は最初の唯一の列になります。そのため、dataGridView1.Columns.Clear();を呼び出します。 – Daanvl