如何更高效编辑同一控件的属性?以textBox1为例
Great question! Repeating textBox1 every time you set a property is super tedious—here are several practical ways to speed up your coding by cutting down on that repetition:
1. VB.NET (WinForms/WPF) - Native With Statement
If you're using VB.NET, this is the easiest built-in solution. The With statement lets you target a single object and set multiple properties without repeating its name:
With textBox1 .Text = "123" .Width = 555 .Height = 666 ' Add any other properties you need to set here End With
This is perfect for existing controls since you don't need to rewrite any setup code—just wrap your property assignments in the With block.
2. C# (WinForms/WPF/ASP.NET)
C# doesn’t have a native With statement, but you have two solid alternatives:
Option A: Object Initializer (for new controls)
If you’re creating the textBox1 control from scratch, use an object initializer to set all properties in one go without repeating the control name:
var textBox1 = new TextBox { Text = "123", Width = 555, Height = 666, // Add more properties here as needed };
Option B: Custom Extension Method (for existing controls)
For controls that already exist, create a simple extension method to wrap property configuration. This lets you reference the control once and set multiple properties inside a lambda:
// Add this extension method to a static class in your project public static void Configure<T>(this T obj, Action<T> configureAction) { configureAction(obj); } // Usage with textBox1: textBox1.Configure(tb => { tb.Text = "123"; tb.Width = 555; tb.Height = 666; });
Once you define the Configure method once, you can reuse it for any object in your project—not just text boxes!
3. JavaScript/TypeScript (Web UI)
If you’re working with a web-based text input, you can either store the element in a variable (to reference once) or use a helper function to batch-set properties:
Variable Assignment (simple, no extra code)
// Grab the element once and reuse the variable const textBox1 = document.getElementById('textBox1'); textBox1.textContent = "123"; textBox1.style.width = "555px"; textBox1.style.height = "666px";
Batch Property Helper
For cleaner batch updates, use Object.assign to set multiple properties at once:
const textBox1 = document.getElementById('textBox1'); Object.assign(textBox1, { textContent: "123" }); // For style properties, target the style object separately Object.assign(textBox1.style, { width: "555px", height: "666px" });
Choose the method that fits your language and workflow—all of these will save you from typing that control name over and over again!
内容的提问来源于stack exchange,提问作者Melon NG

