日韩欧美国产精品免费一二-日韩欧美国产精品亚洲二区-日韩欧美国产精品专区-日韩欧美国产另-日韩欧美国产免费看-日韩欧美国产免费看清风阁

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

C# WinForms 仿Toast彈出實現

admin
2024年10月20日 16:36 本文熱度 845

在WinForms應用程序中,我們通常會使用MessageBox.Show()來顯示消息提示,但這種方式會阻斷用戶操作,直到消息框被關閉。為了提供更流暢的用戶體驗,我們可以仿造Android中的Toast消息提示,實現一種非阻斷性的消息提示。

什么是Toast消息提示?

Toast消息提示是一種在屏幕邊緣或角落彈出的小型、臨時的消息提示框,它不需要用戶交互,會在設定的時間后自動消失。

實現WinForms中的Toast效果

要在WinForms中實現Toast效果,我們需要創建一個無邊框的窗體,并在其中添加一個用于顯示消息的控件(如Label)。然后,我們可以通過調整窗體的位置和透明度,以及設置定時器來控制窗體的顯示和自動關閉。

1. 創建Toast窗體

首先,我們需要創建一個新的窗體(例如命名為ToastForm),并對其進行如下設置:

  • 設置FormBorderStyle屬性為None,以去除窗體邊框。

  • 設置StartPosition屬性為Manual,以便我們可以手動指定窗體的顯示位置。

  • 添加一個Label控件(例如命名為lblMessage),用于顯示消息文本。

  • 設置ShowInTaskbar屬性為False,防止窗體在任務欄中顯示。

2. 實現Toast顯示邏輯

接下來,我們需要在ToastForm中實現顯示和自動關閉的邏輯。以下是一個簡單的示例代碼:

csharp

public partial class ToastForm : Form
{
   
private Timer timer = new Timer();

   
public ToastForm(string message, int duration)
   
{
       
InitializeComponent();
       lblMessage
.Text = message;
       StartPosition
= FormStartPosition.Manual;
       Location
= new Point(Screen.PrimaryScreen.WorkingArea.Width - Width - 10, Screen.PrimaryScreen.WorkingArea.Height - Height - 10);
        timer
.Interval = duration;
        timer
.Tick += (s, e) => Close();
        timer
.Start();
       
Show();
   
}

   
protected override CreateParams CreateParams
   
{
       
get
       
{
           
CreateParams cp = base.CreateParams;
           cp
.ClassStyle = cp.ClassStyle | 0x200; // CS_DROPSHADOW
           
return cp;
       
}
   
}

   
private void ToastForm_Load(object sender, EventArgs e)
   
{
       
this.Opacity = 0;
       timer
.Start();
   
}

   
private void timer_Tick(object sender, EventArgs e)
   
{
       
this.Opacity += 0.1;
       
if (this.Opacity >= 1)
       
{
           timer
.Interval = 2000; // 顯示時長
           timer
.Tick += (s, args) =>
           
{
               
this.Opacity -= 0.1;
               
if (this.Opacity <= 0)
               
{
                   timer
.Stop();
                   
this.Close();
               
}
           
};
       
}
   
}
}

3. 調用Toast窗體

最后,我們可以在需要顯示Toast消息的地方創建ToastForm的實例。例如:

csharp

ToastForm toast = new ToastForm("這是一個Toast消息", 3000); // 顯示時長為3秒

注意事項

  • 確保在多線程環境下安全地訪問UI控件。

  • 考慮在窗體關閉時釋放資源,例如停止定時器。

  • 可以通過調整OpacityLocation屬性來實現更平滑的顯示和隱藏效果。

結論

通過上述步驟,我們可以在WinForms應用程序中實現類似Android的Toast消息提示效果。這種提示方式不會阻斷用戶操作,可以提供更流暢的用戶體驗。希望本文的示例代碼能夠幫助你在開發中實現這一功能。


該文章在 2024/10/22 12:20:06 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 亚洲视频福利 | 成人午夜一区二区三区视频 | 色国产视频 | 午夜亚洲国产理论片秋霞 | 久热国产精品视频 | 欧美日韩第一区二区三区 | 日本中文一二区有码在线 | 亚洲人成日韩中文字幕不卡 | 亚洲性人人天天夜夜摸 | 国产自在现偷国产精品国产日韩 | 国产乱子伦不卡视频 | 日韩欧美国产制服丝袜 | 日韩亚欧美一二三四视频 | 国产亚洲精品不卡 | 国产精品偷伦费观看 | 免费亚洲大片app下载 | 欧美日韩亚洲中文字幕三 | 国产精品广西柳州莫菁泽译网 | 成人免费看片又大又黄 | 欧洲在线一区 | 亚洲精品分类在看在 | 亚洲精品成人一区二区www | 日韩精品一区二区三区影院 | 国产精品极品美女自在线观看 | 99热这里有免费国内精品 | 护士在办公室被躁bd在线观看 | 欧美又粗又大一区二区 | 中文字幕精品一区二区精品 | 国产精品自产拍在线观看一 | 最近高清中文字幕免费mv视 | 成人三级视频在线观看 | 91天堂а8天堂资源在线官网 | 中文字幕午夜福利片午夜福利片 | 又硬又粗又长又爽免费看 | 日本欧美一区二区三区在线播放 | 欧美乱妇日本无乱码特黄大片 | 亚洲精品在线不卡 | 亚洲精品国产精品制服丝袜 | 国产亚洲精品bt天堂精选 | 国产一进一出又大又粗爽视频 | 91精品专区国产盗摄 |