在C#中获取Value Dynamic Textbox

时间:2015-11-22 23:29:43

标签: c#

我制作了动态文本框并将其保留为列表

private void addNewTextbox(object sender, EventArgs e)
{
   Button button = (Button)sender;
   List<TextBox> textBoxes = button.Tag as List<TextBox>;
   if (textBoxes == null)
      button.Tag = textBoxes = new List<TextBox>();
   TextBox textBox = new TextBox();
   textBoxes.Add(textBox);
   textBox.Location = new Point(90 * textBoxes.Count, button.Top);
   textBox.Size = new Size(50, 50);
   this.Controls.Add(textBox);
}

我得到了所有的文本框值,但我有一个问题。举些例子;如果用户添加3个标签,如(A,B,C),并为它们添加文本框(labelA有2个,labelB有3个,labelC有1个),文本框得到像数组一样的值(textboxes [0]有值)。问题是我不知道哪个标签有哪个价值。

我像这样添加了Textbox:

LabelA-->Textbox1 , Textbox2

</br>

labelB -->Textbox3

</br>

LabelC --> Textbox4 , Textbox5 , TextBox6

我试图以屏幕为例;

gem install bundler

2 个答案:

答案 0 :(得分:0)

添加的每个控件都有Name属性。使用此属性将不同的控件链接在一起。例如(你应该提出自己的命名约定),你可以这样做:

LabelA - &gt; TextboxA1,TextboxA2

LabelB - &gt; TextboxB1

LabelC - &gt; TextboxC1,TextboxC2,TextboxC3

如果您希望有更完整(即复杂)的解决方案,您可以:

  1. 创建一个继承自TextBox
  2. 的控件
  3. 为关联的Label控件
  4. 的名称添加属性
  5. 实例化新控件时设置此属性

答案 1 :(得分:0)

我正在努力理解您的问题,我想您是在尝试将用户创建的文本框链接到特定标签?如果我完全错了,请原谅我。如何将代码构造成这样的东西:

注意:使用OP的新代码编辑

foreach( $campaigns as $campaign ) {  

        $params = array(
          'time_range' => array(
            'since' => (new \DateTime($campaign->data_date . ' -1 day'))->format('Y-m-d'),
            'until' => (new \DateTime($campaign->data_date))->format('Y-m-d')
          ),
        );

        $batch[] = $fb->request('GET', '/' . $campaign->ad_campaign_id . '/insights?fields=impressions,unique_clicks,reach', $params);
    }