私はファイルを開くことに取り組んでいます。要件は、ユーザーがフィルターでテキストを選択した場合、ユーザーは複数のファイルを選択できることです。ただし、ユーザーが任意の画像ファイルを選択した場合、ユーザーは単一のファイルを選択できます。
1 つの方法は、dialog.FileOk デリゲートと初期チェックをキャプチャすることです。
同じことを達成する他の方法はありますか。
ありがとうございました、
OpenFileDialogは、FileSelected または FilterChanged のイベントを提供しません。したがって、デフォルトのOpenFileDialogでは、 FileOk イベントをサブスクライブし、ユーザーが選択した後にキャンセルまたは受け入れることしかできません。その場で設定を変更したい場合 (たとえば、ユーザーがフィルターで画像を選択したときに複数のファイルの選択を無効にするなど)、OpenFileDialogを拡張する必要があります。残念ながら、デフォルトのものは封印されているため、そのまま継承することはできません。したがって、これらの記事を見てください。
次のコードを使用します。
private void button1_Click(object sender, System.EventArgs e)
{
openFileDialog1.Filter = "Text Files (.txt)|*.txt|All Files (*.*)|*.*";
openFileDialog1.FilterIndex = 1;
if(openFileDialog1.ShowDialog() == DialogResult.OK)
{
System.IO.StreamReader sr = new
System.IO.StreamReader(openFileDialog1.FileName);
MessageBox.Show(sr.ReadToEnd());
sr.Close();
}