現在、複数の行と列を持つTableLayoutPanelがあります。これは、SQLクエリの出力に応じて実行されるたびに異なるforループによって生成されます。
void tblTableLayoutPanel_CellPaint(object sender, TableLayoutCellPaintEventArgs e)
{
if (e.Row == 2 || e.Row == 4)
{
Graphics g = e.Graphics;
Rectangle r = e.CellBounds;
g.FillRectangle(Brushes.Red, r);
}
}
これは私が現在個々の行に色を付けるために持っているコードですが、2つの変数(JとK)に応じて個々のセルに色を付けることができるようにしたいと思います。
TableLayoutPanel.Controls.Add(label, J, K);
同様に、JとKを使用してTableLayoutPanelのセルにラベルを追加した方法のサンプルを次に示します。CellPaintメソッドをオーバーロードして、JとKを使用できるようにすることはできますか?または、そうであれば、実行時にセルの色を変更するにはどうすればよいですか?
私は以前にこの質問をし、次の解決策を得ました。
CellPaintはイベントであり、メソッドではありません。カラーブラシを返すメソッドGetColor(int row、int column)を作成してから、CellPaintイベントでe.Rowとe.Columnを使用してメソッドを呼び出すことをお勧めします。
使用している変数がメインプログラムにあるため、これがどのように機能するか完全にはわかりません。次に、これらをメソッドの変数と比較する必要がありますか?または、比較する場所に設定してから、イベントを実行します。誰かが私のためにこれをもう少し明確に説明できますか?または多分私に例を教えてください?ありがとう。