【问题标题】:Posting text from one text box into another, each post is placed on top of the previous将文本从一个文本框发布到另一个文本框,每篇文章都放在前一篇文章的顶部
【发布时间】:2015-11-25 20:00:31
【问题描述】:

我正在开发一个 WPF 项目,该项目允许人们在一个文本框中输入评论,当她/他按下按钮时,所写的评论会发布到另一个文本框中,除此之外,最后发布的评论需要发布在上一个。因此,例如,如果评论 1 在晚上 10 点发布,另一条在晚上 11 点发布,那么晚上 11 点的评论将放在晚上 10 点评论的顶部。我该怎么做?

<TextBox x:Name="txtWriteComments" MinLines="4"/> 
<Button x:Name="btnPostComments" Content="Post Comment" Click="btnPostComments_Click"/>

Main Window.cs 中的代码

private void btnPostComments_Click(object sender, RoutedEventArgs e) 
{
    int i = 0; 
    TimeSpan time = DateTime.Now.TimeOfDay; 
    do 
    { 
        i++; 
        ???
    } while (i < 6); 
} 

我做了计数器,因为它最多只能允许 5 cmets

【问题讨论】:

  • 你能和我们分享一些代码吗?有用的代码将是您的输入和显示文本框的 XAML 以及与此相关的功能背后的任何代码。我认为文本框不是您要用于显示的控件。
  • 主窗口中的代码
  • 主窗口中的代码.cs private void btnPostComments_Click(object sender, RoutedEventArgs e) { int i = 0; TimeSpan 时间 = DateTime.Now.TimeOfDay;做{我++; } 而 (i
  • 我建议对您的原始问题进行编辑以包含此代码。您可以通过缩进 4 个空格来做到这一点。从这个片段看来,您只有一个用于评论输入的文本框和一个用于发布评论的按钮。之后cmets去哪里了?
  • 我建议将您的 Click 方法添加到您的原始帖子中。看起来你的点击方法现在什么都不做。准确吗?

标签: wpf


【解决方案1】:

我会使用一个 ItemsControl,也许是一个 ListBox,来显示所有的 cmets。您可以将其与 TextBox 和 Button 一起放入您的 XAML 中。您的控件的 ItemsSource 应该类似于 ObservableCollection。我将把它留给你,但我们称这个集合为“评论”。您可以在顶部添加新的 cmets,并从底部不断删除 cmets (5)。

private void btnPostComments_Click(object sender, RoutedEventArgs e) 
{
    string comment = string.Format("{0}: {1}", DateTime.Now.TimeOfDay, txtWriteComments.Text);
    Comments.Insert(0, comment);
    if(Comments.Count > 5)
        Comments.RemoveAt(5);
} 

此外,您可能希望在将 TextBox 添加到 ListBox 后清除它的值。您也可以在这里执行此操作。

【讨论】:

  • 感谢您的帮助,非常感谢 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-31
  • 2014-12-24
  • 2015-05-01
相关资源
最近更新 更多