LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

【C#】如何根據(jù)Winform窗體中的控件名稱批量快速獲取并清除其中的文本內(nèi)容?

admin
2025年7月28日 10:4 本文熱度 615

:【C#】如何根據(jù)Winform窗體中的控件名稱批量快速獲取并清除其中的文本內(nèi)容?

我的C# Winform程序中有50個(gè)文本控件:txtRoll1、txtRoll2、txtRoll3、、、、、一直到txtRoll50,我需要一次性清空這50個(gè)控件值:txtRoll1.Text="";txtRoll2.Text="";、、、,有沒有簡(jiǎn)單的方法,例如用for(int tmpNum=1;tmpNum<51;tmpNum++){}的方式迅速完成這個(gè)任務(wù)?

 

?

在C# WinForms中,可以使用循環(huán)結(jié)合Controls.Find()方法動(dòng)態(tài)查找控件來實(shí)現(xiàn)。以下是兩種推薦方法:

方法1:直接通過控件名稱查找(推薦)

for (int i = 1; i <= 50; i++)

{

    // 構(gòu)造控件名稱

    string controlName = "txtRoll" + i;

    

    // 在窗體控件集合中查找(包含所有子容器)

    Control[] foundControls = this.Controls.Find(controlName, true);

    

    // 如果找到且是文本框,則清空內(nèi)容

    if (foundControls.Length > 0 && foundControls[0] is TextBox)

    {

        (foundControls[0] as TextBox).Text = string.Empty;

    }

}

方法2:預(yù)先存儲(chǔ)控件到數(shù)組(高效,適合頻繁操作)

// 在窗體類中聲明文本框數(shù)組

private TextBox[] txtRolls;


// 在Form_Load中初始化數(shù)組

private void Form1_Load(object sender, EventArgs e)

{

    txtRolls = new TextBox[50];

    for (int i = 1; i <= 50; i++)

    {

        txtRolls[i-1] = this.Controls.Find("txtRoll" + i, true)[0] as TextBox;

    }

}


// 清空所有文本框

private void ClearTextBoxes()

{

    foreach (var txt in txtRolls)

    {

        txt.Text = string.Empty;

    }

}

關(guān)鍵說明:

Controls.Find()參數(shù)

  • 第一個(gè)參數(shù):控件名稱

  • 第二個(gè)參數(shù):true表示搜索所有子容器(如Panel/GroupBox)

錯(cuò)誤處理:實(shí)際項(xiàng)目中建議添加異常處理

性能

  • 方法1每次操作需要查找控件(約1-50ms)

  • 方法2初始化后直接訪問(最快,推薦頻繁操作時(shí)使用)

設(shè)計(jì)建議

// 可在設(shè)計(jì)器代碼中初始化(替代手動(dòng)創(chuàng)建50次)

private void InitializeRollTextboxes()

{

    for (int i = 1; i <= 50; i++)

    {

        var txt = new TextBox { Name = "txtRoll" + i };

        // 設(shè)置位置等屬性...

        this.Controls.Add(txt);

    }

}

注意事項(xiàng)

  • 確保控件名稱嚴(yán)格匹配(無拼寫錯(cuò)誤)

  • 如果文本框嵌套在容器中,必須使用searchAllChildren: true

  • 大型項(xiàng)目建議使用MVVM模式或數(shù)據(jù)綁定替代直接操作控件

根據(jù)實(shí)際需求選擇方法,對(duì)于50個(gè)控件量級(jí),兩種方法性能差異可忽略不計(jì)。

批量快速讀取控件值方法如下:

string tmpName = "";

int tmpRoll = 0;

for (int i = 1; i <= 9; i++)

{

    // 構(gòu)造控件名稱

    string controlName0 = "txtName" + i;

    string controlName1 = "txtRoll" + i;


    // 在窗體控件集合中查找(包含所有子容器)

    Control[] foundControls0 = this.Controls.Find(controlName0, true);


    // 如果找到且是文本框,則獲取內(nèi)容

    if (foundControls0.Length > 0 && foundControls0[0] is TextBox)

    {

        tmpName=foundControls0[0].Text;

    }


    // 在窗體控件集合中查找(包含所有子容器)

    Control[] foundControls1 = this.Controls.Find(controlName1, true);


    // 如果找到且是數(shù)字框,則獲取內(nèi)容

    if (foundControls1.Length > 0 && foundControls1[0] is NumericUpDown)

    {

        tmpRoll = Convert.ToInt32(foundControls1[0].Text);

    }

}


該文章在 2025/7/28 15:16:26 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

黄频国产免费高清视频,久久不卡精品中文字幕一区,激情五月天AV电影在线观看,欧美国产韩国日本一区二区
在线观看亚洲区激情AV | 中文字幕乱码亚洲2019 | 亚洲国产一线免费观看 | 丝袜美腿一区二区三区 | 一二三区在线视频 | 日韩亚洲人成网站在线播放 |