2

無効にしたときにボタンの色が灰色に変わらないようにしたい。背景色に画像を使用しておりForeColor、白に設定しています。ボタンが無効になっているときは、グレーに変更せずにそのままにしておきたいです。私のコードは次のとおりです。

Private Sub btnItemNonTaxable_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnItemNonTaxable.Click
    If Shift = 0 Then
        MessageBox2("Please Begin the Shift before you start the transaction.", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
        Exit Sub
    End If
    txtNonInventoryQuantity.Text = "1"
    pnlOpenItem.Visible = True
    LabelNonInventory.Text = "Non-Inventory Non-Taxable"
    isOpenItem = True
    chkTax1.Visible = False
    chkTax1.Checked = False
    txtPrice.Focus()
    btnCashDrop.Enabled = False
    If Not btnCashDrop.Enabled Then
        btnCashDrop.Image = My.Resources.small_green
btnCash.ForeColor = Color.White
    End If
4

1 に答える 1

4

実際には、モードが変更されている間、必要なを手動で指定redrawする必要があります。必要に応じて、次のコードを試してください。textbuttoncolorenable

[注:でテストされたコードIDE]

Private Sub Button1_EnabledChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.EnabledChanged
        Button1.ForeColor = If(sender.enabled = False, Color.Blue, Color.Red)
End Sub

Private Sub Button1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Button1.Paint

    Dim btn = DirectCast(sender, Button)
    Dim drawBrush = New SolidBrush(btn.ForeColor)
    Dim sf = New StringFormat With {.Alignment = StringAlignment.Center, .LineAlignment = StringAlignment.Center}
    Button1.Text = String.Empty
    e.Graphics.DrawString("Button1", btn.Font, drawBrush, e.ClipRectangle, sf)
    drawBrush.Dispose()
    sf.Dispose()

End Sub
于 2013-03-25T11:03:35.670 に答える