2

フォーム コントロールの追跡を処理する formControlTracker クラスを作成しました。それは期待どおりに機能するようです。ここで、保存ボタンが押されたときに formControlTracker クラス内から public string[] getDirtyControls() メソッドにアクセスしたいと思います。cTracker.getDirtyControls() にアクセスしようとしましたが、バスのコードはそのままで、インスタンス化したクラス formControlTracker は範囲外だと思います。formControlTracker クラスを再インスタンス化せずに getDirtyControls() メソッドにアクセスするにはどうすればよいですか?

コードスニペット:

public partial class settingsForm : Form
{
    public settingsForm()
    {

        InitializeComponent();

        settingsTabControl.Appearance = TabAppearance.Buttons;
        settingsTabControl.SizeMode = TabSizeMode.Fixed;
        settingsTabControl.ItemSize = new System.Drawing.Size(0,1);

        formControlTracker cTracker = new formControlTracker(this);

        wLogSettingsFormProperties settingsFormProp = new wLogSettingsFormProperties();

    }

    public void lDirtyControls()
    {

        /*foreach (string con in cTracker.getDirtyControls())
        {
            MessageBox.Show(con);
        }*/
    }

    public void saveSettingsButton_Click(object sender, EventArgs e)
    {
        lDirtyControls();
    }
4

1 に答える 1

4

クラスのフィールドにすることができます

public partial class settingsForm : Form
{
    private formControlTracker _cTracker;

    public settingsForm()
    {
        //set the field value in the constructor.
        _cTracker = new formControlTracker(this);

    }

    public void lDirtyControls()
    {
        //use the field variable here
        /*foreach (string con in _cTracker.getDirtyControls())
        {
            MessageBox.Show(con);
        }*/
    }
}

C# のフィールドの詳細については、http:
//msdn.microsoft.com/en-us/library/ms173118.aspxを参照してください。

于 2013-08-21T00:13:21.817 に答える