繁体   English   中英

在某些情况下隐藏/显示按钮

[英]Hiding / displaying buttons under certain conditions

form1有带有此代码的buttons 有一个button可以转到磁盘分区“ C”,“ D”,“ E”,“ F”等。 如果计算机具有这样的磁盘分区,则该button可见,否则该button被隐藏。 怎么做?

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

您可以在Page_Load()上使用以下代码

foreach (System.IO.DriveInfo item in System.IO.DriveInfo.GetDrives())
{
    if(item.Name == "C:\\")
    {
        button10.Visible = true;
    }
    else
    {
        button10.Visible = false;
    }
}

您可以在这种情况下使用按钮的可见性属性。 例如:

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

button10_Click()这是表单的按钮事件,在其中可以这样编写

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

好吧,由于默认情况下按钮是隐藏的,因此您可以编写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();
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM