Установка VisualStyles.VisualStyleState.NonClientAreaEnabled в коде показывает совершенно другой диалог для вызова OpenFileDialog, чем когда это делается без VisualStyleState.В раскрывающемся списке «Меню просмотра» отображается вертикальная полоса без текста, и левая панель браузера исчезла.
Изображение, показывающее проблему с установленным состоянием визуального стиля
В нашемПриложение, нам нужно установить стили, так как мы разработали собственные.
Ошибка, воспроизводимая в Windows 10 Build 1709, .Net 4.6.1 и приложении по умолчанию на C # формах.Также воспроизводится в Windows 10 build 1809. Прекрасно работает со всеми более ранними версиями Windows.
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
Application.VisualStyleState = System.Windows.Forms.VisualStyles.VisualStyleState.NonClientAreaEnabled;
}
private void button1_Click(object sender, EventArgs e)
{
OpenFileDialog fileDialog = new OpenFileDialog();
fileDialog.Multiselect = false;
fileDialog.CheckFileExists = true;
fileDialog.Filter = " (*.sql)|*.sql";
fileDialog.ShowDialog();
}
}
Без установленного VisualStyleState, OpenFileDialog показывает совершенно другой пользовательский интерфейс с панелью браузера слева и все раскрывающиеся списки работают.как и ожидалось.
Изображение, демонстрирующее поведение OpenFileDialog по умолчанию
Любые указатели для устранения этой проблемы будут полезны.