私はDataGridViewを持っており、これらの値に異なるForeColorを与えることによって変更される演算子を表示します。オペレーターは、[破棄]ボタンをクリックすると、すべての変更を破棄することができます。その場合、私はセルに継承されたスタイルを使用させる必要があります。DataGridViewCellStyleを継承した値に復元する方法
私の問題は、いったん変更したことを示すCellStyleを作成したら、これを元に戻すことができないため、セルが継承されたスタイルを使用することです。
私はいくつかの研究を行いました。記事Cell Styles in the Windows Forms DataGridView ControlでMSDNは警告している:
は、セルのスタイルプロパティに格納された値をキャッシュ かかわらず、特定のスタイル値が設定されているかどうかの重要です。 スタイル設定を一時的に置き換える場合は、元の " "の状態に復元すると、セルがより高いレベルのスタイル の設定を継承することに戻ります。
ああ、これは動作していないよう:
DataGridViewCell cell = ...;
Debug.Assert(!cell.HasStyle); // cell is not using its own style
var cachedColor = cell.Style.ForeColor; // cache the original color
cell.Style.ForeColor = Color.Red; // indicate a change
Debug.Assert(cell.HasStyle); // now cell is using its own style
// restore to the 'not set' state:
cell.Style.ForeColor = cachedColor;
Debug.Assert(!cell.HasStyle); // exception, not using inherited style
cell.Style = cell.InheritedStyle; // try other method to restore
Debug.Assert(!cell.HasStyle); // still exception
そこで質問:状態「を設定していない」が元にスタイル設定を復元する方法は?