1

私は現在、ボタンをクリックするたびに .exe ファイルを開いて起動できる「クイックスタート プログラム」をコーディングしています。このために、 を使用しopenFileDialogて、ユーザーが目的の .exe ファイルを開くことができるようにしました。

さらに、.exe からアイコンを抽出して、スタート ボタンの上に表示します。

これにより、ユーザーはopenFileDialogのDialogResultがnoneを示すファイル (.exe) を選択できるようになります。通常の動作中の .exe をロードしても、OKと表示されることはありません。

これが私のコードです。

private void button1_Click(object sender, EventArgs e)
    {
        openFileDialog1.ShowDialog();
        if (DialogResult == DialogResult.OK)
        {
            string path = openFileDialog1.FileName;
            ExtractIcon(path);
        }
    }

    private void ExtractIcon(string filePath)
    {
        Icon ico = Icon.ExtractAssociatedIcon(filePath);
            pictureBox1.Image = ico.ToBitmap();
    }

私のコードに問題がありますか、それとも DialogResultが原因ですか?

4

3 に答える 3

7

次のようにコードを変更してみてください。

if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
        string path = openFileDialog1.FileName;
        ExtractIcon(path);
}
于 2013-03-05T08:40:27.510 に答える
5

の戻り値をShowDialog()変数に格納し、これを比較する必要がありますDialogResult.OK

var result = openFileDialog1.ShowDialog();

if (result == DialogResult.OK){
  string path = openFileDialog1.FileName;
  ExtractIcon(path);
}
于 2013-03-05T08:39:48.450 に答える
2

DialogResult変数とは そうではありませんか:

var result = openFileDialog1.ShowDialog();
if (result == DialogResult.OK)
{
    string path = openFileDialog1.FileName;
    ExtractIcon(path);
}
于 2013-03-05T08:40:23.107 に答える