Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка Windows Forms > OpenFileDialog проблема запоминания главного катал


Автор: KiSH333 3.10.2011, 09:16
Добрый ночи, бьюсь уже 2ой час не могу найти выход из простой ситуации которая загнала в тупик полный.
Опишу проблему не вдаваясь в детали.

Есть форма на которой будем говорить есть 2 кнопки, каждая из которых вызывает экземпляр класса OpenFileDialog.

Первая кнопка открывает OpenFileDialog и осуществляет подключение к БД ( этот каталог будем считать главным, но там exe файл проги не лежит ).
Вторая кнопка открывает тоже OpenFileDialog и делает манипуляции с текстовыми файлами, которые не лежат в каталоге где лежит БД.

КАК ДОЛЖНЫ работать OpenFileDialog,

1) я открыл первый OpenFileDialog поставил принудительное запоминание каталога, т.е. при следующем открытии у меня открывается каталог с БД. Тут все нормально.
2) Затем я открываю второй OpenFileDialog выбираю файл - открывается каталог где лежат текстовые файлы, и путь к нему задан жестко - относительно каталога с БД. Тут тоже все нормально.
3) И даже если я снова пользуюсь первой кнопкой для подключения к БД, OpenFileDialog меня ведет в каталог где лежит БД - все прекрасно так и должно все работать.

НО есть проблема, Если я после пункта 2) закрыл программу и снова ее запустил и хочу подключиться к БД, первый OpenFileDialog меня уводит в каталог где лежат Текстовые Файлы, а не БД.


Что только не пробовал, и принудительное задание текущего каталога ни чего не помогает. Не знаю как обрабатывать такой момент. Кто может подскажите кодом, а то обрыл весь инет, насчет этой темы, ни чего нет ((( 


Использую для обоих OpenDialogBox такие вещи...
Код

private void button1_Click(object sender, System.EventArgs e)
{
    Stream myStream = null;
    OpenFileDialog openFileDialog1 = new OpenFileDialog();

    openFileDialog1.InitialDirectory = "c:\\" ;
    openFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*" ;
    openFileDialog1.FilterIndex = 2 ;
    openFileDialog1.RestoreDirectory = true ;

    if(openFileDialog1.ShowDialog() == DialogResult.OK)
    {
        try
        {
            if ((myStream = openFileDialog1.OpenFile()) != null)
            {
                using (myStream)
                {
                    // Insert code to read the stream here.
                }
            }
        }
        catch (Exception ex)
        {
            MessageBox.Show("Error: Could not read file from disk. Original error: " + ex.Message);
        }
    }
}

Автор: Kolovorot 4.10.2011, 10:58
Попробуйте Settings.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)