none
使用using Microsoft.WizardFramework RRS feed

  • 问题

  • 在使用using Microsoft.WizardFramework制作向导程序,主要代码如下:

     public partial class Page1 : WizardPage
        {
            public Page1(WizardForm parent)
                : base(parent)
            {
                InitializeComponent();

                this.Headline = "第一个页面";
                this.StepTitle = this.Headline;
                this.ShowInfoPanel = true;
                this.InfoRTBoxText = "收集输入数据";
               
            }
            
            private void textBox1_TextChanged(object sender, EventArgs e)
            {
                IDictionaryService dictservice = (IDictionaryService)GetService(typeof(IDictionaryService));
                dictservice.SetValue("ConnectionSettings", this.textBox1.Text);
                MessageBox.Show(dictservice.GetValue("ConnectionSettings").ToString());
            }
        }

     public partial class Page2 : WizardPage
        {
            public Page2(WizardForm parent)
                : base(parent)
            {
                InitializeComponent();
                this.Headline = "第二个页面";
                this.StepTitle = this.Headline;
                this.ShowInfoPanel = true;
                this.InfoRTBoxText = "显示第一个页面输入的数据";

               
            }

            private void button1_Click(object sender, EventArgs e)
            {
                IDictionaryService dictservice = (IDictionaryService)GetService(typeof(IDictionaryService));
                String str=dictservice.GetValue("ConnectionSettings").ToString();
               
                this.textBox1.Text = str;
            }
        }

     {
                InitializeComponent();
                Page1 p1 = new Page1(this);         
                this.AddPage(p1);
                Page2 p2 = new Page2(this);
                this.AddPage(p2);
            }

    本想在第一页面中把数据收集放在dictservice 里,在第二页面中获取使用。第一黑体行处,dictservice 总是获得NULL。请各位帮忙下,该如何修改。

     

    谢谢。

     

     

     


    做一名合格的中国人!
    2011年8月28日 14:10

答案

  • GetService 是实现在 IServiceProvider 上的一个方法,如果 WizardFramework 没有实现特定类型的 ServiceProvider,如 LifetimeService,用 GetService 方法肯定无法获取相应的 IServiceProvider 实例的。

    我没记错的话 Microsoft.WizardFramwork 有一个 UserData 属性的,用这个在向导页面间传递数据就可以了。


    Mark Zhou
    • 已标记为答案 中尉 2011年8月29日 12:18
    2011年8月29日 9:45

全部回复

  • GetService 是实现在 IServiceProvider 上的一个方法,如果 WizardFramework 没有实现特定类型的 ServiceProvider,如 LifetimeService,用 GetService 方法肯定无法获取相应的 IServiceProvider 实例的。

    我没记错的话 Microsoft.WizardFramwork 有一个 UserData 属性的,用这个在向导页面间传递数据就可以了。


    Mark Zhou
    • 已标记为答案 中尉 2011年8月29日 12:18
    2011年8月29日 9:45
  • 谢谢您的回答,解决问题了。基础不牢的恶果啊。


    做一名合格的中国人!
    2011年8月29日 12:18