0

私は次のようなアプリケーションを実装しています:

  • フォームが読み込まれると、「マイピクチャー」フォルダからパネルに画像が自動的に読み込まれます。(ここでコードを見つけることができます)

  • 私のプログラムには別の機能があります。フォルダを開く。これにより、ユーザーはフォルダを開いて同じパネルに画像をロードできます。

私の質問は、新しいフォルダを開くことを選択すると、このフォルダの画像が「My Picture」フォルダの画像のに表示され、何が問題なのかはわかりますが、解決方法がわかりません。

「MyPicture」から画像を自動的にロードするためのコードには、現在のPictureBoxコントロールの位置を定義するPositionという変数が含まれており、その初期値は0です。

//2 variables, one for the Y position of the current PictureBox control
            //and one for help count the number of images in the directory
            int position = 0;
            int count = 0;

Open Folderのコードは、My Picturesから画像をロードするときに使用したコードと同じであり、位置の初期値も0です。そのため、新しくロードされた画像は古い画像の下に表示されます。

private void openFolderToolStripMenuItem_Click(object sender, EventArgs e)
        {
            toolStripStatusLabel1.Text = "Getting files.....";

            int position = 0;
            int count = 0;

どうすればこの問題を解決できますか?最近作成したPictureBoxの位置を保存して、初期値として使用することを考えました。private void openFolderToolStripMenuItem_Click

ありがとう!

4

1 に答える 1

0

これをやってみてください

        int position = 0;
        int count = 0;
        private void openFolderToolStripMenuItem_Click(object sender, EventArgs e)
        {
            toolStripStatusLabel1.Text = "Getting files.....";
            //your work
        }

したがって、これをもう一度呼び出すと、位置は「0」にはなりません\

編集 私はそのリンクを読んだので

PictureBox pb = new PictureBox();

古い画像を削除するために動的に作成するコントロールはこれを行います

private void openFolderToolStripMenuItem_Click(object sender, EventArgs e)
        {
        foreach (Control ctrl in this.Controls)
        {
            if (ctrl is PictureBox)
                this.Controls.Remove(ctrl);
        }
        //Your code
于 2012-04-26T11:46:15.550 に答える