6

Vb.NetでWindowsアプリケーションを開発しています。これで、グリッドに表示されたレコードを印刷するフォームが1つあります。グリッド内のセルヘッダーをクリックしてグリッドを並べ替える機能があり、グリッドに表示されているとおりに印刷されます。

そのため、グリッドの行番号を維持する方法について少し混乱しています。グリッドがいっぱいになり、データソースを割り当てるときに、最初にDBから行番号を取得できます。ただし、ユーザーがセルヘッダーをクリックしてその列を並べ替えると、行番号が変更されます。その時、私が行番号を維持することは非常に困難です。

グリッド内の行番号を維持する方法を教えてもらえますか?

前もって感謝します。

4

2 に答える 2

8

私はあなたがこれを必要とすると思います:

注:このコードはC#であるため、VB.Netに変換するだけです。

代理人:

this.dgvUserDetails.RowPostPaint += new System.Windows.Forms.DataGridViewRowPostPaintEventHandler(this.dgvUserDetails_RowPostPaint);

イベント:

private void dgvUserDetails_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)
{
        using (SolidBrush b = new SolidBrush(dgvUserDetails.RowHeadersDefaultCellStyle.ForeColor))
        {
              e.Graphics.DrawString((e.RowIndex + 1).ToString(), e.InheritedRowStyle.Font, b, e.RowBounds.Location.X + 10, e.RowBounds.Location.Y + 4);
        }
}

出力

行番号

于 2013-01-09T07:20:10.780 に答える
-1

grid.Rows(e.RowIndex).HeaderCell.Value = CStr(e.RowIndex + 1)

ここに画像の説明を入力するためのコードをコピーします

于 2021-08-11T04:13:24.687 に答える