2

向窗体添加一个 DateTimePicker、两个文本框和两个按钮

添加以下代码:

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    DateTimePicker1.Enabled = True
    TextBox1.Enabled = True
    TextBox2.Enabled = True
    TextBox1.BackColor = DateTimePicker1.BackColor
    TextBox2.BackColor = Color.FromArgb(DateTimePicker1.BackColor.A, DateTimePicker1.BackColor.R, DateTimePicker1.BackColor.G, DateTimePicker1.BackColor.B)
End Sub

Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
    DateTimePicker1.Enabled = False
    TextBox1.Enabled = False
    TextBox2.Enabled = False
    TextBox1.BackColor = DateTimePicker1.BackColor
    TextBox2.BackColor = Color.FromArgb(DateTimePicker1.BackColor.A, DateTimePicker1.BackColor.R, DateTimePicker1.BackColor.G, DateTimePicker1.BackColor.B)
End Sub

在所有情况下,从,和的BackColor回读都具有相同的 ARGB 值DateTimePickerTextBox1TextBox2

但是当Button2点击时,屏幕上TextBox1的实际上是 F0F0F0 (来自屏幕抓取颜色选择器)- 有对此的解释吗?BackColor

我认为这也适用于 C# - 因此是标签。

4

1 回答 1

1

您可以使用ReadOnly属性而不是Enabled属性来控制可编辑行为并分配 custom BackColor

于 2012-05-04T13:39:42.323 回答