【问题标题】:Get textbox name from stackpanel wpf从堆栈面板 wpf 获取文本框名称
【发布时间】:2023-02-01 23:34:18
【问题描述】:

我的 wpf 应用程序中有一个带有动态创建的文本框和按钮的堆栈面板。 这工作正常。稍后在应用程序中我必须使用文本框的名称和值。我怎么做。 我有这段代码: 首先在名为 panelBet 的堆栈面板中创建文本框。

其次是使用名称和值的开关盒。 “控制”下的红线。

第一次创作:

int f = 1;
foreach (TextBox txt2 in txtBet)
{
    string name = "Bet" + f.ToString(); ;

    txt2.Name = name;
    txt2.Text = name.ToString();
    txt2.Width = 100;
    txt2.Height = 40;
    txt2.Background = Brushes.Lavender;
    txt2.Margin = new Thickness(3);
    txt2.HorizontalAlignment = HorizontalAlignment.Left;
    txt2.VerticalAlignment = VerticalAlignment.Top;
    txt2.Visibility = Visibility.Visible;

    panelBet.Children.Add(txt2);

    f++;
}

第二个开关盒:

private void cboRunder_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    var cboRunder = sender as ComboBox;

    string strRunder = cboRunder.SelectedValue.ToString(); // blinds, preflop osv.

    switch (strRunder)
    {
        case "Blinds":
            string s = ((TextBox)panelBet.Controls["txtBet"]).Text;                 
    }
}

【问题讨论】:

  • 我会使用WPF binding mvvm StackPanel。然后您根本不需要访问 StackPanel 并创建或读取 TextBoxes。相反,您可以直接从您的集合中访问数据。只需添加 TextBox 而不是链接示例中的 Label

标签: c# wpf stackpanel


【解决方案1】:

假设有一个:

TextBox txtBet = panelBet.Children.OfType<TextBox>().FirstOrDefault(x => x.Name == "txtBet")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多