前回の色編集アプリを改修しました。 色を表示する面積を増やしました。
入手先
問題
各コントロールの背景色を指定した色にしたからです。 しかし、たったそれだけなのに、たくさんの問題が出ました。
- 文字が見えなくなる
- TrackBarでちらつきが発生した
- コントロールごとに色の反映に時差がある
- NumericUpDownの数値表示が遅れる
- NumericUpDownの上下ボタンの下部に前の色が残る
TrackBarをちらつかせずに背景色を反映する方法
方法
文字が見えなくなる
- 背景色と反対色を文字色に設定してみる
- RGB(128,128,128)で見えなくなった
- 所定範囲内の場合、文字色を黒で表示てみる
- とりあえずこれで妥協しておく
- 所定範囲内の場合、文字色を黒で表示てみる
- RGB(128,128,128)で見えなくなった
- 背景色と反対色を文字色に設定してみる
TrackBar
- 背景色に直接色をつける
- ちらつく
- コントロールごとに色が反映されるまで時差がある
- 背景色を透明色にする
TrackBar.BackColor = Transparent;
はサポートされていない
SetStyle(ControlStyles.Opaque, true);
で背景色の描画を抑制するPanel.Update();
との併用で解決した!
- 背景色に直接色をつける
Panel
- 色の反映に時差がある
Panel.Update();
で解決した!
- 色の反映に時差がある
NumericUpDown
NumericUpDown.Refresh();
で解決した!
所感
とてつもなく苦労しました。 本当は色々ありましたが書ききれません。要点だけ書き残しました。 コントロールや描画まわりは大変です。