[英]C# Windows Forms, do not show a form in taskbar, but make it go on front when a form that is shown there is focused
我正在創建一個具有類似於Photoshop的界面的應用程序:多個單獨的表單都有助於編輯對象。 所以,我將有多個表單,其中一個是“main”(提供文件菜單,設置菜單,等等),其他表單有控件,用於編輯以主窗體打開的對象。
讓我們說簡單,這是一個文本編輯器,我有MainForm和StyleForm。 現在,我需要的是整個應用程序在Windows任務欄中顯示為一個“欄”。 這可以通過為StyleForm設置ShowInTaskbar為false來實現,但是如果我,比如聚焦其他應用程序,然后關注我的應用程序,只有MainForm將在其他窗口之上,StyleForm將保持隱藏在我專注的應用程序窗口下先前。
我在這里找到答案當選擇一個表單但導入一個dll 時,使與程序關聯的所有表單都出現在前面 。 也許這有一個.net解決方案?
另外,我想在任務欄中顯示不同的內容,而不是MainForm的標題,這可能嗎?
我將第二個表單設置為ShowInTaskBar = false
,將FormBorderStyle
設置為SizableToolWindow
,然后使用以下代碼創建它:
public partial class Form1 : Form
{
Form2 f2;
public Form1()
{
InitializeComponent();
f2 = new Form2();
f2.Owner = this; // <-- This is the important thing
f2.Show();
}
}
這使得子窗體F2
上的頂桿Form1
和隱藏和顯示它在Form1
被隱藏和顯示。
編輯
哦,如果這很重要,我使用Visual Studio 2010和.NET 4 Client Profile。 但是,這應該適用於其他版本。
在主窗口中,您可以捕獲Focus事件,然后為每個子窗體調用BringToFront方法
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.