2012-04-04 13 views
0

初めてC3をコーディングしていて、初めてビジュアルスタジオを使用しています。C#user control crashing VS11

私は、その種類のコントロールを将来容易に実装できるように、ファイル/フォルダなどを選択できるユーザーコントロールを作成しています。しかし、私はコントロールを任意のフォームにドラッグするたびに、Visual Studioは即座にクラッシュします。私は、ソリューション全体を何度か再構築しようとしました。 コントロールでパブリック変数を作成するときにのみエラーが発生しているようです...

誰もこの問題を回避する方法を知っていますか? コードは進行中です....;)

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Drawing; 
using System.Data; 
using System.Linq; 
using System.Text; 
using System.Windows.Forms; 

namespace BackupReport.tools 
{ 
    public partial class pathchooser : UserControl 
    { 

     #region "Datatypes" 
     public enum DLG { Folder, FileSave, FileOpen }; 
     #endregion 

     #region "public properties" 
     public DLG Dtype 
     { 
      get 
      { 
       return this.Dtype; 
      } 
      set 
      { 
       this.Dtype = value; 
      } 
     } 

     public string labelText 
     { 
      get 
      { 
       return this.labelText; 
      } 
      set 
      { 
       this.labelText = value; 
       label1.Text = this.labelText; 
      } 
     } 
     #endregion 

     #region "Constructor" 
     public pathchooser() 
     { 
      InitializeComponent(); 
      this.Dtype = DLG.Folder; 
      this.labelText = "Source:"; 
      label1.Text = this.labelText; 
     } 
     #endregion 

     private void browse_button_Click(object sender, EventArgs e) 
     { 
      switch (this.Dtype) 
      { 
       case DLG.Folder: 
        if (fbd.ShowDialog() == DialogResult.OK) 
        { 
         path_textbox.Text = fbd.SelectedPath; 
        } 
        break; 

       case DLG.FileSave: 
        break; 

       case DLG.FileOpen: 
        break; 

       default: 
        break; 
      } 
     } 
    } 
} 

助けていただければ幸いです。 また、私はそれが重要であるかどうかはわかりませんが、VS11ベータ版を使用しています。

//マーティン

答えて

5
public DLG Dtype 
    { 
     get 
     { 
      return this.Dtype; 
     } 
     set 
     { 
      this.Dtype = value; 
     } 
    } 

をあなたはプロパティが自分自身を参照するため、(それぞれ)の内側にゲッターとセッターを独自のゲッターとセッターを呼び出しています。

public DLG DType{get; set;} 

またはプライベート変数を参照アクセサました::

private DLG dtype; 
public DLG Dtype 
    { 
     get 
     { 
      return this.dtype; 
     } 
     set 
     { 
      this.dtype = value; 
     } 
    } 
+0

ニース...トリックは... は今それだけで文句だんでしたが、より適切な何かがいずれかの空のアクセサを持っているのいずれかになりますpublic string、 "Expected class、delegate、enum、interface or struct"とはどういう意味ですか? Accoridngにhttp://msdn.microsoft.com/en-us/library/aa288470%28v=vs.71%29.aspxそれはキスト細かいはずです... – Martinnj

+0

いいキャッチヤコブ – Habib

3

私はゲッターとセッターが無限ループに自分自身を呼び出すためにあなたの特性は、StackOverflowExceptionを引き起こしていると思う(DTYPE - > DTYPE - > DTYPE ...)。

は、代わりにこのコードを試してみてください。

private string labelText; 

public DLG Dtype { get; set; } 

public string LabelText 
{ 
    get { return this.labelText; } 
    set 
    { 
    this.labelText = value; 
    label1.Text = value; 
    } 
} 
関連する問題