【问题标题】:WPF showdialog Textbox with var content带有 var 内容的 WPF showdialog 文本框
【发布时间】:2012-04-04 23:56:20
【问题描述】:

我尝试完成以下工作:

一个 WPF 应用程序,我有多个按钮,您可以在其中设置通知消息。 根据按钮的不同,您可以设置不同的消息。

我所做的是在消息按钮上我放了这段代码:

private void button1_Click(object sender, RoutedEventArgs e)
 {
    CounterMessage msgOne = new CounterMessage();
    msgOne.ShowDialog();
 }

这将打开一个新的 WPF 窗口,这里只有一个文本框和一个退出按钮。 在退出此消息窗口时,它会将消息保存到参数中。

但这就是诀窍。 我想将此消息窗口用于多个通知,如果应用程序中的字符串已经有任何文本内容,它将在文本框中显示任何文本内容。

例如: 在主应用程序中,我有按钮 A 和 B 来设置通知。 我点击按钮 A,显示对话框弹出,在文本框中已经有“你点击按钮 A” 如果是按钮 B 被点击,它应该显示“你点击了按钮 B”

所以我应该使用 ShowDialog 发送一些额外的信息,这样我就可以使用每个消息窗口。 有人能帮帮我吗?

我必须说我觉得很难体面地描述我想要的东西,所以我希望我说得足够清楚。

编辑 所以我想要将字符串参数的内容(准确地说:Properties.Settings.Default.XXX)显示到 Countermessage 窗口中的文本框中

【问题讨论】:

    标签: c# wpf showdialog


    【解决方案1】:

    我不完全确定你在问什么,但听起来你想要这样的东西。我假设 CounterMessage 是一个窗口,并且有一些绑定机制或属性可以显示消息是什么。

    public class CounterMessage : Window
    {
        public CounterMessage(string message)
        {
            this.Message = message;
        }
    
        public string Message
        {
            get;
            set;
        }
    }
    

    您的按钮事件将类似于以下内容:

    private void button1_Click(object sender, RoutedEventArgs e)
    {
         Button btn = sender as Button;
         CounterMessage msgOne = new CounterMessage(btn.Text);
         msgOne.ShowDialog();      
    }
    

    关键是您不向 ShowDialog 方法发送内容,而是向作为对话框本身的类发送内容。我还假设对话框不仅仅显示消息 - 否则,您只需使用 MessageBox.Show(....)

    【讨论】:

    • 不,我想要的是将字符串参数的内容(准确地说:Properties.Settings.Default.XXX)显示到 Countermessage 窗口中的文本框中
    • 好的,所以将它传递给类。关键是,你不能在 ShowDialog 调用中传递一些东西——你需要将一些东西传递给底层类(窗口)。
    【解决方案2】:
            Button btn = (Button)sender;
            Debug.WriteLine(btn.Name);
    

    【讨论】:

      猜你喜欢
      • 2011-02-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-17
      • 2016-05-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多