現在、C# datagridview を使用して、500 行以上 700 列以上を含むウェーハ マップを描画しています。
ただし、いくつかの問題があります。
パフォーマンスが遅い。列幅を調整する必要があるため、ループして個別に割り当てる必要があります。
for (int i = 0; i < this.dgvCompleteMapGrid.Columns.Count; i++) { this.dgvCompleteMapGrid.Columns[i].Width = 8; }
ウェーハマップはほぼ丸い形をしているので、値のあるセルのセル境界を描画するだけで済みます。私はcellpaintingイベントを使用しています:
if (e.Value != null) { if (e.Value.ToString() == "") { e.AdvancedBorderStyle.All = DataGridViewAdvancedCellBorderStyle.None; } else { if (e.Value.ToString() == "1") { e.CellStyle.BackColor = Color.Lime; } else { e.CellStyle.BackColor = Color.Red; } //check if the top border set None for neighbor empty value cell if (e.AdvancedBorderStyle.Top.ToString() == "None") { e.AdvancedBorderStyle.Top = DataGridViewAdvancedCellBorderStyle.Single; } //repeat the same for left right and bottom } }
ただし、ほとんどのセルで複数の境界線の複製が描画されるようです。
Datagridview は推奨されますか? パネルに四角形を描画しようとしましたが、パフォーマンスがさらに低下します。