Textbox Array не обновляется в userControl WIndows Forms - PullRequest
0 голосов
/ 23 января 2020

Интересно, может ли кто-нибудь помочь мне с этим?

Я пытаюсь создать пользовательский элемент управления с набором текстовых ящиков. Идея состоит в том, чтобы иметь возможность отображать набор информации.

Я могу получить один текстовый ящик для обновления, но я просто не могу получить массив для того же.

Функция _aTextBox () вызывается из 2 кнопок моей основной программы следующим образом:

private void button1_Click(object sender, EventArgs e)  
{  
 ucTextBox1._aTextBox("Hello");  
}  
private void button2_Click(object sender, EventArgs e)  
{  
    ucTextBox1._aTextBox("World");  
}

My User Control code is below:

Namespace ucTextBox  
{  
public partial class ucTextBox: UserControl  
{  
public ucTextBox()  
  {  
                 InitializeComponent();  
  }  
                 TextBox[] txt = new TextBox[2];  
private void DisplayTextBoxes()  
  {  
     txt[0] = new TextBox();  
     txt[0].Location = new System.Drawing.Point(20, 48);  
     this.Controls.Add(txt[0]);  
  }  
public void _aTextBox(string text)  
   {  
     DisplayTextBoxes();  
     txt[0].Visible = false;  
     txt[0].Text = text; // *********************  
     txt[0].Visible = true;  
     txt[0].Invalidate();  
     txt[0].Update();  
     txtValue.Visible = true;  
     txtValue.Text = text;  
     txt[0].ResumeLayout(true);  
    }  
  }  
}

* В строке, отмеченной // ***** ****************, txt [0] .Текст содержит правильную строку. Тем не менее, он никогда не отображает его !!! *

Любые и все предложения приветствуются. Большое спасибо за ваше время, прочитав это.

Джон

Ответы [ 2 ]

0 голосов
/ 23 января 2020

, так как каждый раз, когда вы вызываете _aTextBox (текст строки),
эта функция вызывает DisplayTextBoxes ();
, где вы всегда переписываете свой txt [0] с новым TextBox ();
Может быть, вы захотите используйте List вместо Array и добавьте текстовые поля в его конец.

0 голосов
/ 23 января 2020

Я думаю, вы рисуете все текстовые поля в одном месте. Вы должны что-то суммировать с координатами x и y.

последнее нарисованное текстовое поле является верхним и скрывает первое вставленное.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...