0

私はこのような方法を持っています:

    public void Report(Form form, string[] textboxes, string[] patientdetails)
    {
        try
        {
            int i = 0;
            foreach (string textbox in textboxes)
            {
                form.Controls.OfType<TextBox>().FirstOrDefault(n => n.Name == textbox).Text = patientdetails[i];
                i++;
            }

            form.ShowDialog();
        }
        catch (Exception ex)
        {
        }
    }

インスタンスオブジェクトに設定されていないこれらの戻りオブジェクト参照に引数を渡すことによって:

 string[] textboxes = new string[] { "txtPatientName", "txtAge", "txtGender","txtTestType","txtDate" }; 
 string[] patientDetails = new string[]{"Ammar Bashir", "19", "Male", "White Blood Cell Test", "12 March , 2013"};

 //Test a winform which contain textboxes.
  Report(Test, textboxes, patientDetails);
4

2 に答える 2

0

私はそれを手に入れました、実際にはすべてのテキストボックスはsplitContainerの最初のsplitterPanelにありました、私はそれらを'Controls'プロパティでトラバースし、TextBoxesのTextプロパティを変更しました...皆さんのサポートに感謝します。

于 2013-03-13T19:22:06.103 に答える
0

コードの残りの部分を見たり、例外がスローされた行を正確に知らなかっTestたりすると、メソッドに渡す前に初期化していないと思います。

それ、または

 form.Controls.OfType<TextBox>().FirstOrDefault(n => n.Name == textbox)

一致するものが見つからないため、を返しnullます。Text次に、nullどちらが例外をスローするかを呼び出します。

于 2013-03-13T03:10:29.137 に答える