У меня есть контроллер FolderBrowserDialog, в котором, если пользователь выбирает корневой диск, такой как C: // или E: //, он должен выдавать некоторые предупреждения.
Мы можем справиться с этим, добавив окно сообщений, но проблема добавления окна сообщений заключается в том, что однажды, если мы дадим ОК в диалоговом окне папки, он закроется, и пользователь получит предупреждение, поэтому не нужно использовать предупреждение, так как мы передаем результат как результат диалога как OK.
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(HeadlessForm));
this.SuspendLayout();
//
// HeadlessForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(124, 0);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "HeadlessForm";
this.Opacity = 0D;
this.Text = "TESTTool";
this.TopMost = true;
this.Shown += new System.EventHandler(this.HeadlessForm_Shown);
this.ResumeLayout(false);
Выше приведен базовый код формы, и мы переписываем приведенный ниже код для преобразования его в папку Dialgoue.
var settings = message.RequestData.FirstOrDefault<UserInterfaceSelectPathRequestModel>();
if (settings == null)
return;
TaskThreadHelper.StartStaTask(() =>
{
using (var form = new HeadlessForm())
{
form.BringToFront();
form.Show();
using (var dialog = new FolderBrowserDialog { SelectedPath = settings.SelectedPath, Description = settings.Description })
{
var result = dialog.ShowDialog(form);
var userDerives = Environment.GetLogicalDrives();
bool b = userDerives.Any(dialog.SelectedPath.Contains);
if (b == true)
{
string alertMessage = string.Format("You have selected Logical Drive {0},Please select any specific folder", dialog.SelectedPath);
MessageBox.Show(alertMessage, "Direct Logical Drive Selection is Not Possible",MessageBoxButtons.RetryCancel);
result = DialogResult.Retry;
}
Итак, наконец, нам нужно диалоговое окно «Папка», в котором, когда пользователь выбирает логические диски, он должен отобразить неправильный выбор и попросить их выбрать конкретную папку.