0

私の質問のタイトルは、私の問題が実際よりも単純に思えます。私がやっていることは、文字列をテキストボックスに入れようとしていますが、入りません。文字列をあるクラスから別のクラスに渡し、次に別のクラスに渡すことでこれを行っています。いわばはしごを滴り落ちるようなものです。文字列はここから始まります:

public static void FilePath(string fileName)
{
    string fn = fileName;
    PicForm.FileName(fn);
}

fileNamesaveFileDialog経由でからプルされていFilePath(sd.FileName)ます。次にPicForm.FileName()、次のように に移動します。

public static void FileName(string fileName)
{
    string fn = fileName;
    AddAtt aa = new AddAtt(Form1.con);
    aa.AddScan(fn);            
}

そこからaa.AddScan()、次のように に送信されます。

public void AddScan(string fileName)
{
    textBox7.Text = fileName;
}

明らかに、これは文字列がテキストボックスに入力されることですが、そうではありません。ここで、メッセージボックスを追加して、スティングがここに到達していることと、textBox7.Text が文字列 (fileName) に正しく設定されていることを確認します。MessageBoxes は、コードが機能することを示しています。しかし、テキストボックスは別のことを言っています。AddScan() を使用する別の方法も試しました。openFileDialog を使用する別のボタンに追加しました。そして、それは次のようになります。

private void button3_Click(object sender, EventArgs e)
{
    string Chosen_File = "";
    openFileDialog1.InitialDirectory = "C:";
    openFileDialog1.FileName = "";

    if (openFileDialog1.ShowDialog() == DialogResult.Cancel)
    {
        MessageBox.Show("Operation Cancelled");
    }
    else
    {
        Chosen_File = openFileDialog1.FileName;
        //textBox7.Text = Chosen_File;
        AddScan(Chosen_File);
    }
}

そのクリック イベントから呼び出すとAddScan()、textBox7 にテキストが正しく表示されるようになりました。私の質問は、なぜ一方の方法では機能するのに、他方の方法では機能しないのかということです。コードが機能するように思えます。どんな助けでも素晴らしいでしょう。

4

1 に答える 1

1

FileName 関数では、AddAtt クラスの既存のインスタンスを使用して Textbox にテキストを設定する必要があるときに、そのクラスの新しいインスタンスを作成しています。

于 2012-12-14T19:26:32.273 に答える