簡體   English   中英

只有 1 個文本框會填充從另一個表單傳遞的參數。 為什么?

[英]Only 1 textbox will populate with parameters passed from another form. Why?

我有一個表單frmControlSystem連接到外部數據源,我從中接收進入數組的字符串。 此表單打開另一個表單frmResult_Vote以顯示該信息。 第二種形式是將字符串數組作為參數以及要顯示的項目數量的整數和另一個參數傳遞。 第二種形式將正確啟用所需文本框的 .Visible。 但只有第一個 textBox 才會真正在其中顯示文本; 其他都是空白。

第一個表單使用此代碼顯示第二個表單:

frmResult_Vote results = new frmResult_Vote(memberDisplayName, iMemberQty, ConstMembersPlusOne);
results.Show()

第二種形式創建了一個 textBoxes 數組,因此我可以循環並僅使我想要使用的那些以及填充 .Text 屬性可見。 這段代碼是:

public frmResult_Vote(string[] myVoteMembers, int iMemberQty, int ConstMembersPlusOne)
        {
            InitializeComponent();
            textBox1.Text = "FU";

            TextBox[] memberTextBoxes = new TextBox[ConstMembersPlusOne];

            memberTextBoxes[1] = txtDisplayName1; memberTextBoxes[2] = txtDisplayName2; memberTextBoxes[3] = txtDisplayName3; memberTextBoxes[4] = txtDisplayName4;
            memberTextBoxes[5] = txtDisplayName5; memberTextBoxes[6] = txtDisplayName6; memberTextBoxes[7] = txtDisplayName7; memberTextBoxes[8] = txtDisplayName8;
            memberTextBoxes[9] = txtDisplayName9; memberTextBoxes[10] = txtDisplayName10; memberTextBoxes[11] = txtDisplayName11; memberTextBoxes[12] = txtDisplayName12;

            for (int i = 1; i <= iMemberQty; i++)
            {
                memberTextBoxes[i].Text = myVoteMembers[i];
                memberTextBoxes[i].Visible = true;
            }            
        }

當第二個表單顯示時,將啟用適當數量的文本框,但只有第一個會顯示文本。

第二種形式有 12 個文本框,名為 txtDisplayName1 到 txtDisplayName12。 這些是我用來填充 TextBox 數組的內容。

最后一點奇怪(至少對我而言):第二個表單上的每個其他 textBox 都是用不同的 BackColor 繪制的。 當第一種形式顯示()第二種形式時,永遠不會顯示; 它們都以白色顯示。

在試圖讓其他文本框的東西秀,我也試圖通過這樣的非數組名專門致電:

txtDisplayName1.Text = myVoteMembers[1];

這根本沒有做任何事情。

我還在第二個表單上放置了一個隨機文本框,並嘗試用這一行填充它:

textBox1.Text = "FU";

該 textBox 也不會填充...但如果我注釋掉 for 循環,該 textBox1.Text 分配將起作用。 它也是在其他一切之前調用的。

我已經驗證數組 myVoteMembers 中有字符串,當我逐步執行代碼時,我可以看到這里發生的分配:

memberTextBoxes[i].Text = myVoteMembers[i];

我在這里缺少什么?

你有一個例外 - 可能在這里:

for (int i = 1; i <= iMemberQty; i++)
{
     memberTextBoxes[i].Text = myVoteMembers[i];
     memberTextBoxes[i].Visible = true;
} 

myVoteMembers 數組將從 0 開始並具有 iMemberQty 項數。 這意味着 0-iMemberQty-1 索引。 當您訪問 iMemberQty'th 索引時,它會拋出索引超出綁定異常

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM