2017-04-13 75 views
0

form1上有buttons與此代碼。有一個button去磁盤分區「C」,「D」,「E」,「F」等。如果計算機有這樣的磁盤分區 - button可見,否則button被隱藏。怎麼做?在特定條件下隱藏/顯示按鈕

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

您是否正在尋找關於如何使一個按鈕看不見或者你想知道如何檢查它是否需要隱形? – Cataklysim

+0

所有按鈕默認爲隱藏。但是如果有可以打開的磁盤分區,則應該顯示該按鈕。 – Eve

回答

0

你可以在這種場景中使用的一個按鍵,你Page_Load()

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

此代碼被插入Form1_load?我需要完成一件事情,還是馬上就能工作? – Eve

+0

這只是一個按鈕,如果條件允許代碼處理剩餘的控件,則需要添加更多按鈕。除此之外,這應該工作得很好。 –

+0

我明白了。但我不明白在哪裏插入此代碼? – Eve

0

可以使用visibility屬性的follwoing代碼。 例如:

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

您可以使用此按鈕。可見=條件; –

0

button10_Click()這是你的表格的按鈕事件,裏面你可以這樣寫

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

只是想知道用戶如何點擊一個不可見的按鈕? –

0

好,因爲你的按鈕默認是隱藏的,你可以寫一個 refresh()方法。在內部,您可以詢問是否存在特定驅動器。

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

在哪裏添加代碼?

  • 被稱爲每次窗體/控制/網站被刷新或intialized:

你應該在將位置添加方法調用或代碼。也許在您的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(); 
    } 
    
    +0

    可以更多嗎?我在哪裏插入代碼,我應該添加什麼? – Eve

    +0

    @EVE它是否適合你?讓我們知道,讓具有類似問題的開發人員能夠快速找到答案,或者如果它不起作用,我們可以找到另一種解決方法。 – Cataklysim