在按钮单击时将 IsAccess 设置为 false 是否会停止或跳过任何编码?



我想设计一个Windows表单应用程序,当我单击按钮时,按钮被禁用并且还显示等待光标只是为了指示程序仍在运行,然后执行分配给按钮单击事件的所有操作,最后再次启用按钮。

这是我的代码

Cursor.Current = Cursors.WaitCursor;
button1.IsAccessible=false;
string path=textBox1.Text;
var files=Directory.GetFiles(path,"*.xml",SearchOption.AllDirectories);
foreach (var item in files)
{
    XDocument xdoc=XDocument.Load(item);
    xdoc.Descendants("title").First().Value="Resumen";
    xdoc.Descendants("source").First().Value="Apolpa";
    xdoc.Descendants("volume").First().Value="300";
    xdoc.Descendants("issue").First().Value="XXV";
    xdoc.Descendants("label").First().Value="[1]";
    xdoc.Save(item);
}
MessageBox.Show("Complete!");
button1.IsAccessible=true;

我的问题是,由于我在代码的最开头添加了button1.IsAccessible=false;(在对文件进行任何修改之前(,它会跳过还是无法正确运行按钮单击事件中的所有代码?

这可能是一个愚蠢的问题,但我对此很陌生,我只是想知道......谢谢

您可以使用button1.Enabled=false;而不是button1.IsAccessible=false;button1.Enabled=true;而不是button1.IsAccessible=true;并保持Cursor.Current = Cursors.WaitCursor原样。

此外,我更喜欢在这种情况下使用进度条。 检查下面的代码:

Cursor.Current = Cursors.WaitCursor;
button1.Enabled=false;
//set the starting value of progressBar to 0
progressBar1.Minimum=0;
string path=textBox1.Text;
var files=Directory.GetFiles(path,"*.xml",SearchOption.AllDirectories);
//set the max value of progressBar to the no. of files
progressBar1.Maximum = files.Length;
foreach (var item in files)
{
    //the value of the progressBar increases by +1 for each file
    progressBar1.Value = progressBar1.Value+1;
    XDocument xdoc=XDocument.Load(item);
    xdoc.Descendants("title").First().Value="Resumen";
    xdoc.Descendants("source").First().Value="Apolpa";
    xdoc.Descendants("volume").First().Value="300";
    xdoc.Descendants("issue").First().Value="XXV";
    xdoc.Descendants("label").First().Value="[1]";
    xdoc.Save(item);
}
MessageBox.Show("Complete!");
button1.Enabled=true;

相关内容

最新更新