我有這個「家」作爲主要形式...我有管理登錄按鈕,它打開管理登錄表單...但按鈕應限制管理員的數量登錄表格只能使用允許點擊一個按鈕的形式的數量
回答
一個簡單的解決方法是在打開表單後設置一個boolean flag
。
bool AdminFormOpen;
private void adminLoginBtn_click()
{
if(!AdminFormOpen)
{
// Open the form.
AdminFormOpen = true;
}
}
然後,在Admin Form
中,確保您通過增值方法重置此值。例如:
protected void OnClosed(EventArgs e)
{
parentForm.setAdminFormOpen(false);
}
的副本不要忘記在打開後實際設置標誌形式:P – Kai
Wayyy超前你!謝謝:) – christopher
如果表單已經存在,則使用布爾變量來發信號。
要麼顯示登錄表單ShowDialog()
- >只要登錄表單可見或跟蹤打開的表單並在登錄表單打開時按鈕單擊時不做任何操作。
第一個例子:
private void ButtonClick(object sender, EventArgs e)
{
var frm = new LoginForm();
frm.ShowDialog();
}
第二個例子:
private LoginForm form;
private void ButtonClick(object sender, EventArgs e)
{
if (form != null)
{
if (form.Visible)
{
return;
}
form.Show();
}
else
{
form = new LoginForm();
form.Show();
}
}
第三個例子(使用LINQ):
private void ButtonClick(object sender, EventArgs e)
{
if (Application.OpenForms.Cast<Form>().Any(x => x.GetType() == typeof(LoginForm)))
{
return;
}
var frm = new LoginForm();
frm.Show();
}
+1所有的解決方案都是正確的。對不起,沒有看到你在寫我自己的答案時添加了第三個例子。決定離開它,因爲更短linq –
你的LINQ比我的更好/更短:) +1 – gzaxx
您可以使用Application.OpenForms收集檢查登錄表單已經打開,而不是使用布爾標誌:
if (!Application.OpenForms.OfType<LoginForm>().Any())
{
var loginForm = new LoginForm();
loginForm.Show();
}
或使用Form.ShowDialog()以模態形式打開登錄表單。
- 1. iFrame不允許我點擊按鈕
- 2. 當點擊其他標籤上的其他按鈕時,允許點擊按鈕
- 3. MVC:允許多次點擊同一個按鈕
- 4. 只允許一個單選按鈕檢查兩種形式
- 5. 點擊一個按鈕的形式,是一種圖像
- 6. UpdatePanel不允許在GridView中點擊按鈕點擊
- 7. FULL_SCREEN_INTERACTIVE模式:「允許」按鈕點擊傳遞給應用程序
- 8. 允許一個購物車項目在下訂單按鈕點擊或繼續結帳按鈕點擊
- 9. 如何允許點擊一個按鈕「n」次然後消失一個月
- 10. jQuery,只允許一次點擊對話是按鈕
- 11. 允許按鈕在流星中只點擊一次
- 12. 允許用戶更改與一個按鈕一個JavaScript變量單擊
- 13. CakePHP:允許數據庫更新,點擊按鈕
- 14. 按鈕點擊許多按鈕動畫
- 15. 只允許點擊一次
- 16. 「允許」按鈕,Flash內容無法在Mac的Chrome中點擊
- 17. 如何僅允許點擊浮動動作按鈕的圈內?
- 18. JQuery的工具提示不允許按鈕被點擊
- 19. 形式上點擊PayPal按鈕
- 20. 形式後點擊「不提交」按鈕
- 21. 點擊一個按鈕來模擬點擊多個按鈕
- 22. 在形式無效按鈕,直到另一個按鈕被點擊
- 23. 許多提交按鈕一種形式
- 24. doClick點擊隱形按鈕
- 25. 點擊一個按鈕從
- 26. 上點擊一個按鈕
- 27. 點擊一個HTML按鈕
- 28. 點擊一個按鈕
- 29. 點擊一個按鈕
- 30. 上點擊一個按鈕
可能是http://stackoverflow.com/questions/3087841/how-can-i-make-a-single-instance-form-not-application – CodeCamper