在特定条件下隐藏/显示按钮

时间:2017-04-13 06:05:32

标签: c# .net winforms

form1上有buttons代码。有一个button转到磁盘分区“C”,“D”,“E”,“F”等等。如果计算机具有此类磁盘分区 - button可见,则隐藏button。怎么做?

private void button10_Click(object sender, EventArgs e)
        {
            webBrowser1.Navigate(@"C:\");
        }

4 个答案:

答案 0 :(得分:0)

您可以在Page_Load()

上使用以下代码
foreach (System.IO.DriveInfo item in System.IO.DriveInfo.GetDrives())
{
    if(item.Name == "C:\\")
    {
        button10.Visible = true;
    }
    else
    {
        button10.Visible = false;
    }
}

答案 1 :(得分:0)

您可以在此类场景中使用按钮的可见性属性。 例如:

if(condition) {
button.Visible = true;
}

答案 2 :(得分:0)

button10_Click()这是您的表单的按钮事件,您可以像这样编写

if(System.IO.DriveInfo.Contains == yourDrive)
{
    button10.visible = true;
}
else 
{
    button10.visible = false;
}

答案 3 :(得分:0)

因为默认情况下你的按钮是隐藏的,你可以写一个 refresh()方法。在里面你可以询问是否存在特定的驱动器。

string drive = @"C:\";
if (Directory.Exists(drive))
{
   button.Visible = true;
}
  

我在哪里添加该代码?

您应该在以下位置添加方法调用或代码:

    每次表格/控制/网站刷新或初始化时,都会调用
  • 。也许在您的Form1.Load活动中。
  • 当按钮初始化或需要被看到时。

您可以使用的方法示例:

private void CheckForDisks()
{
  if (Directory.Exists(@"C:\"))
  {
    buttonC.Visible = true;
  }
  if (Directory.Exists(@"D:\"))
  {
    buttonD.Visible = true;
  }
  if (Directory.Exists(@"E:\"))
  {
    buttonE.Visible = true;
  }
  // and so on... you can also do this with a loop, look up Adarsh Ravi answer for this
}

您可以在Form1.Load事件中调用此方法,例如:

privat void Form1_Load(object sender, EventArgs e)
{
  this.CheckForDisks();
}