| 
    
     |  | ▼西谷 さくら さん: こんばんわ
 
 >動きました。すごぃ!!この手法の理屈は何なのでしょうか?
 >もし、説明して頂ければありがたいです。
 
 原因がよく分からなかったので、とりあえず Enabled を False にしたときに
 BackColor・ForeColor を共にデフォルトの システムカラーに設定してみたというだけです。
 
 システムカラー
 http://www.shifrol.co.jp/Cdb2/Manual/Design/ColorWinSystem.html
 
 
 その後、少し調べてみたのですが、結局原因らしいものは分かりませんでした。
 お役に立てず、すいません。
 
 
 ただ、少し検証したところ影響しているのは BackColor のようです。
 全て試したわけではないのですが、
 BackColorをプロパティウィンドウでパレットの2段目に指定してやると、
 モノクロ以外どの色でもEnabled を False にした時 ForeColor は淡色表示されます。
 パレットの1段目では全て淡色表示にはならないようです。
 3段目・4段目は(モノクロも含め)なったりならなかったりみたいです。
 5段目・6段目も全て淡色表示にはならないようです。
 
 
 どなたか詳しい方フォロー願います。
 
 
 ご参考までに(参考にならない?)
 検証時に使用したコード
 
 '************************************************************************************
 'コマンドボタン1つ、スピンボタン1つ、ラベル1つを用意
 'ループ脱出処理はしていないので段階数、表示停止時間に注意してください
 '************************************************************************************
 
 Private Declare Sub Sleep Lib "KERNEL32.dll" (ByVal dwMilliseconds As Long)
 
 Private Sub CommandButton1_Click()
 
 Dim i As Integer
 Dim j As Integer
 Dim k As Integer
 Dim r As Integer
 Dim g As Integer
 Dim b As Integer
 Dim iStep As Integer
 
 Const cStep As Integer = 8     '段階数
 Const tSleep As Integer = 100    '表示停止時間( 1/1000 秒単位)
 
 SpinButton1.Enabled = False
 
 iStep = Round(256 / cStep)
 
 For i = 0 To cStep
 If i * iStep < 256 Then r = i * iStep Else r = 255
 For j = 0 To cStep
 If j * iStep < 256 Then g = j * iStep Else g = 255
 For k = 0 To cStep
 If k * iStep < 256 Then b = k * iStep Else b = 255
 SpinButton1.BackColor = RGB(r, g, b)
 DoEvents
 Label1.Caption = "RGB(" & CStr(r) & ", " & CStr(g) & ", " & CStr(b) & ") "
 Sleep tSleep
 Next k
 Next j
 Next i
 
 End Sub
 
 |  |