我正在自定义按钮颜色等,我希望能够将表单重置为默认颜色。我知道该怎么办,因为我在谷歌搜索时找到了答案,但是UseVisualStyleBackColor
不起作用?!?!我遍历按钮,Visual Studio在命令下划线。
this.BackColor = Control.DefaultBackColor;
foreach (Control c in this.Controls)
{
if (c.GetType() == typeof(Button))
{
c.UseVisualStyleBackColor = true;
c.BackColor = Control.DefaultBackColor;
}
}
收到的错误是
CS1061“控件”不包含“ UseVisualStyleBackColor”的定义,也找不到找不到接受“控件”类型的第一个参数的扩展方法“ UseVisualStyleBackColor”(您是否缺少using指令或程序集引用?)>
如果我尝试直接访问按钮,是否会遇到相同的错误?
答案 0 :(得分:2)
this.BackColor = Control.DefaultBackColor;
foreach (Control c in this.Controls)
{
if (c is Button)
{
var button = (Button)c;
button.UseVisualStyleBackColor = true;
button.BackColor = Control.DefaultBackColor;
}
}
答案 1 :(得分:2)
我建议使用 Linq (import pandas as pd
xls = pd.ExcelFile('myexcel.xls')
out_df = pd.DataFrame()
for sheet in xls.sheet_names:
df = pd.read_excel('myexcel.xls', sheet_name=sheet)
out_df.append(df) ## This will append rows of one dataframe to another(just like your expected output)
print(out_df)
## out_df will have data from all the sheets
)来过滤按钮:
.OfType<Button>()
答案 2 :(得分:1)
对于任何版本的C#,您都可以使用类型转换:
((Button)c).UseVisualStyleBackColor = true;
从C#7开始,您可以使用Pattern Matching(尝试将其强制转换+成功后,将结果分配给新变量):
if (c is Button b))
{
b.UseVisualStyleBackColor = true;
b.BackColor = Control.DefaultBackColor;
}
答案 3 :(得分:0)
按代码顺序的轻微问题需要它才能起作用。必须重新排列颜色和视觉样式的设置。...
this.BackColor = Control.DefaultBackColor;
foreach (Control c in this.Controls)
{
if (c is Button b)
{
b.BackColor = Control.DefaultBackColor;
b.UseVisualStyleBackColor = true;
}
}