私はこの機能を使用これを行うには、私のDataGridView
の各列の位置を取得する必要がない場合は、値なし:GetColumnDisplayRectangle行がリサイズで
Rectangle rec = dgv.GetColumnDisplayRectangle(getColumnIndexByName(entry.Key), true);
をしてくれ列のRECを与えるが、もし私はレコードのないテーブルを持っています。関数は0の値でrecを返します。
どうすればこの問題を解決できますか?ここ
グリッドが行を持っている場合、私が持っているものです:私は
下の列の値のフィルタとして使用するいくつかのテキストボックスを持っている青色のパネルで
今、グリッドがいくつかの行を持っている場合、それは完全に動作し、私は右の列の矩形を取得、私は左と幅を取得し、私はヘッダーの上にフィルタを配置することができます..私は間違ったフィルタを設定し、 0レコード、テキストボックスの配置場所はわかりません
編集:getColumnIndexByName
のコード:
protected int getColumnIndexByName(string name)
{
foreach (DataGridViewColumn col in dgv.Columns)
{
if (col.Name.ToLower().Trim() == name.ToLower().Trim()) return col.Index;
}
return -1;
}
おかげ
@ L.Guthardt申し訳ありませんが、この問題が発生しました – ghiboz
しかし、あなたはテーブルが空の場合はテーブル?なぜ? –
私は行がない場合でもヘッダーはまだ存在しています...ヘッダーの上にテキストボックスを追加してフィルターとして使用し、フィルターが常に表示されるようにします – ghiboz