将按钮文本重置为原始文本
Reset Button Text to original Text
我有更改文本的按钮,有一次我需要一组按钮来更改回原始文本。
我可以手动完成,并设置每个 button.text=originalText"
但是有没有办法更快地完成此操作?
有没有办法从属性中获取原始文本并循环更改文本?
(他们都有相同的标签)
在调用 InitializeComponent
之后,您可以创建一个包含按钮及其原始文本的字典 属性。
假设您有三个名为 Button1, Button2, Button3
的按钮
Dim _originalTexts As Dictionary(Of Button, string)
Public Sub New()
InitializeComponents()
_originalTexts = new Dictionary(Of Button, string)() From _
{ _
{Button1, Button1.Text}, _
{Button2, Button2.Text}, _
{Button3, Button3.Text} _
}
End Sub
当你需要还原你能写的原文时
for each pair as KeyValuePair(Of Button, string) in _originalTexts
pair.Key.Text = pair.Value
Next
当然,以这种方式使用字典还可以搜索特定按钮。
这是一个示例,您在其中搜索标签 属性 设置为 something
的按钮
Dim b = tt.Where(Function (x) x.Key.Tag.ToString = "b1").SingleOrDefault()
if b.Key IsNot Nothing Then
Console.WriteLine(b.Value)
End If
注意:如果您在表单 class 中没有看到 InitializeComponent
调用,只需键入构造函数
Public 子新建() ENTER
和 IDE 将为您显示丢失的代码。
声明一个实例变量来存储每个按钮的默认文本
Private DefaultButtonTexts as Dictionary(Of string, string)
在InitializeComponent()
之后,将每个按钮的名称和文本存入字典
'Sub Main
'dim form = new Form()
'form.Controls.Add(new TextBox() With { .Name = "txt1" })
'form.Controls.Add(new Button() With { .Name = "btn1", .Text = "Button 1" })
'form.Controls.Add(new Button() With { .Name = "btn2", .Text = "Button 2" })
'DefaultButtonTexts = form.Controls.Cast(Of Control)
DefaultButtonTexts = this.Controls.Cast(Of Control) _
.OfType(Of Button) _
.ToDictionary(Function(x) x.Name, Function(x) x.Text)
'DefaultButtonTexts.Dump()
'form.ShowDialog()
'End Sub
而且,需要的时候直接从字典中恢复
Private Sub RestoreText(button as Button)
button.Text = DefaultButtonTexts(button.name)
End Sub
或者,根据 Tag
属性
恢复一些按钮
this.Controls.Cast(Of Control) _
.OfType(Of Button) _
.Where(Function(x) x.Tag = "tag1") _
.ToList() _
.ForEach(Function(x) x.Text = DefaultButtonTexts(x.name))
我有更改文本的按钮,有一次我需要一组按钮来更改回原始文本。
我可以手动完成,并设置每个 button.text=originalText"
但是有没有办法更快地完成此操作?
有没有办法从属性中获取原始文本并循环更改文本? (他们都有相同的标签)
在调用 InitializeComponent
之后,您可以创建一个包含按钮及其原始文本的字典 属性。
假设您有三个名为 Button1, Button2, Button3
Dim _originalTexts As Dictionary(Of Button, string)
Public Sub New()
InitializeComponents()
_originalTexts = new Dictionary(Of Button, string)() From _
{ _
{Button1, Button1.Text}, _
{Button2, Button2.Text}, _
{Button3, Button3.Text} _
}
End Sub
当你需要还原你能写的原文时
for each pair as KeyValuePair(Of Button, string) in _originalTexts
pair.Key.Text = pair.Value
Next
当然,以这种方式使用字典还可以搜索特定按钮。
这是一个示例,您在其中搜索标签 属性 设置为 something
Dim b = tt.Where(Function (x) x.Key.Tag.ToString = "b1").SingleOrDefault()
if b.Key IsNot Nothing Then
Console.WriteLine(b.Value)
End If
注意:如果您在表单 class 中没有看到 InitializeComponent
调用,只需键入构造函数
Public 子新建() ENTER
和 IDE 将为您显示丢失的代码。
声明一个实例变量来存储每个按钮的默认文本
Private DefaultButtonTexts as Dictionary(Of string, string)
在InitializeComponent()
之后,将每个按钮的名称和文本存入字典
'Sub Main
'dim form = new Form()
'form.Controls.Add(new TextBox() With { .Name = "txt1" })
'form.Controls.Add(new Button() With { .Name = "btn1", .Text = "Button 1" })
'form.Controls.Add(new Button() With { .Name = "btn2", .Text = "Button 2" })
'DefaultButtonTexts = form.Controls.Cast(Of Control)
DefaultButtonTexts = this.Controls.Cast(Of Control) _
.OfType(Of Button) _
.ToDictionary(Function(x) x.Name, Function(x) x.Text)
'DefaultButtonTexts.Dump()
'form.ShowDialog()
'End Sub
而且,需要的时候直接从字典中恢复
Private Sub RestoreText(button as Button)
button.Text = DefaultButtonTexts(button.name)
End Sub
或者,根据 Tag
属性
this.Controls.Cast(Of Control) _
.OfType(Of Button) _
.Where(Function(x) x.Tag = "tag1") _
.ToList() _
.ForEach(Function(x) x.Text = DefaultButtonTexts(x.name))