winForm如何在右下角弹出窗体????

xzq12345 2012-01-04 02:35:17

弹出的窗体在最上面,并且不获得焦点 ,就是不影响其他节面的操作
...全文
964 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
低调的感觉 2012-01-13
  • 打赏
  • 举报
回复
以前做过 记得是将一个窗体弹出来,百度哈
烟波钓 2012-01-13
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 qq465999214 的回复:]
引用 10 楼 yanbuodiao 的回复:
引用 4 楼 happy09li 的回复:
C# code

这个是可以做的。。。


/// <summary>
/// 枚举,描述消息窗口加载的形式
/// </summary>
public enum LoadMode
{
/// <summary>
/// 警告
/// </summary>
Warning,…………
[/Quote]
那您说说引用啥了
杨友山 2012-01-13
  • 打赏
  • 举报
回复
this.Active();
xzq12345 2012-01-10
  • 打赏
  • 举报
回复

关键是 弹出在最上面的时候 其他的界面就失去了焦点,我不想让它获得焦点(就是不影响其他界面的操作),各位大虾,这才是我的问题啊?
Kulou_ 2012-01-10
  • 打赏
  • 举报
回复
做一个提示窗口,位置调到右下角,委托调用
熙风 2012-01-10
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 xzq12345 的回复:]
关键是 弹出在最上面的时候 其他的界面就失去了焦点,我不想让它获得焦点(就是不影响其他界面的操作),各位大虾,这才是我的问题啊?
[/Quote]

弹出界面后再让窗体获得焦点不就得了,。。。。。
qq465999214 2012-01-10
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 yanbuodiao 的回复:]
引用 4 楼 happy09li 的回复:
C# code

这个是可以做的。。。


/// <summary>
/// 枚举,描述消息窗口加载的形式
/// </summary>
public enum LoadMode
{
/// <summary>
/// 警告
/// </summary>
Warning,……

这个用法是啥了? 根本没有效果 求解释
[/Quote]

别人引用了资源 的 你没有当然 没有效果
烟波钓 2012-01-10
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 happy09li 的回复:]
C# code

这个是可以做的。。。


/// <summary>
/// 枚举,描述消息窗口加载的形式
/// </summary>
public enum LoadMode
{
/// <summary>
/// 警告
/// </summary>
Warning,……
[/Quote]
这个用法是啥了? 根本没有效果 求解释
EnForGrass 2012-01-04
  • 打赏
  • 举报
回复
这个功能很多管理系统都用得到,
http://wenku.baidu.com/view/c1ad1227482fb4daa58d4bfe.html
winform C#屏幕右下角弹出消息框,自动消失
xzq12345 2012-01-04
  • 打赏
  • 举报
回复
关键是不能影响其他节目的操作,不能让其他界面失去焦点
小火龙果 2012-01-04
  • 打赏
  • 举报
回复
厄 设置topmost属性=true
熙风 2012-01-04
  • 打赏
  • 举报
回复
这个是可以做的。。。


/// <summary>
/// 枚举,描述消息窗口加载的形式
/// </summary>
public enum LoadMode
{
/// <summary>
/// 警告
/// </summary>
Warning,

/// <summary>
/// 错误
/// </summary>
Error,

/// <summary>
/// 提示
/// </summary>
Prompt
}

/// <summary>
/// 消息提示窗口
/// </summary>
public partial class FormMessageBox : Form
{
/// <summary>
/// 构造方法
/// </summary>
public FormMessageBox()
{
InitializeComponent();
}


#region ***********************字 段***********************

/// <summary>
/// 窗体加载模式
/// </summary>
private static LoadMode FormMode = LoadMode.Prompt;

/// <summary>
/// 显示的消息正文
/// </summary>
private static string ShowMessage = null;

/// <summary>
/// 关闭窗口的定时器
/// </summary>
private Timer Timer_Close = new Timer();


[DllImportAttribute("user32.dll")]
private static extern bool AnimateWindow(IntPtr hwnd, int dwTime, int dwFlags); // 该函数可以实现窗体的动画效果

public const Int32 AW_HOR_POSITIVE = 0x00000001; // 自左向右显示窗口。该标志可以在滚动动画和滑动动画中使用。当使用AW_CENTER标志时,该标志将被忽略
public const Int32 AW_HOR_NEGATIVE = 0x00000002; // 自右向左显示窗口。当使用了 AW_CENTER 标志时该标志被忽略

public const Int32 AW_VER_POSITIVE = 0x00000004; // 自顶向下显示窗口。该标志可以在滚动动画和滑动动画中使用。当使用AW_CENTER标志时,该标志将被忽略
public const Int32 AW_VER_NEGATIVE = 0x00000008; // 自下向上显示窗口。该标志可以在滚动动画和滑动动画中使用。当使用AW_CENTER标志时,该标志将被忽略

public const Int32 AW_CENTER = 0x00000010; // 若使用了AW_HIDE标志,则使窗口向内重叠;若未使用AW_HIDE标志,则使窗口向外扩展
public const Int32 AW_HIDE = 0x00010000; // 隐藏窗口,缺省则显示窗口
public const Int32 AW_ACTIVATE = 0x00020000; // 激活窗口。在使用了AW_HIDE标志后不要使用这个标志
public const Int32 AW_SLIDE = 0x00040000; // 使用滑动类型。缺省则为滚动动画类型。当使用AW_CENTER标志时,这个标志就被忽略
public const Int32 AW_BLEND = 0x00080000; // 使用淡入效果。只有当hWnd为顶层窗口的时候才可以使用此标志

#endregion*************************************************


#region ***********************方 法***********************

/// <summary>
/// 构造方法
/// </summary>
/// <param name="loadMode">加载模式</param>
/// <param name="message">消息正文</param>

public static void Show(LoadMode loadMode, string message)
{
FormMode = loadMode;
ShowMessage = message;

FormMessageBox box = new FormMessageBox();
box.Show();
}



#endregion*************************************************


#region ***********************事 件***********************

/// <summary>
/// 窗体加载事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void FormMessageBox_Load(object sender, EventArgs e)
{
this.lblTitle.Text = "提示";
if (FormMode == LoadMode.Error)
{
this.lblTitle.Text = "错误";
this.plShow.BackgroundImage = global::dataSource.Properties.Resources.error; // 更换背景
}
else if (FormMode == LoadMode.Warning)
{
this.lblTitle.Text = "警告";
this.plShow.BackgroundImage = global::dataSource.Properties.Resources.warning; // 更换背景
}
else
{
this.plShow.BackgroundImage = global::dataSource.Properties.Resources.Prompt; // 更换背景
}

this.lblMessage.Text = ShowMessage;

int width = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width;
int height = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height;
int top = height - 35 - this.Height;
int left = width - this.Width - 5;
this.Top = top;
this.Left = left;
this.TopMost = true;

AnimateWindow(this.Handle, 500, AW_SLIDE + AW_VER_NEGATIVE);//开始窗体动画

this.ShowInTaskbar = false;

Timer_Close.Interval = 4000;
Timer_Close.Tick += new EventHandler(Timer_Close_Tick);
Timer_Close.Start();
}

/// <summary>
/// 关闭窗口的定时器响应事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Timer_Close_Tick(object sender, EventArgs e)
{
Timer_Close.Stop();

this.Close();
}

/// <summary>
/// 窗口已经关闭
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void FormMessageBox_FormClosed(object sender, FormClosedEventArgs e)
{
AnimateWindow(this.Handle, 500, AW_SLIDE + AW_VER_POSITIVE + AW_HIDE);

Timer_Close.Stop();
Timer_Close.Dispose();
}

/// <summary>
/// 鼠标移动在消息框上
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void plShow_MouseMove(object sender, MouseEventArgs e)
{
this.Timer_Close.Stop();
}

/// <summary>
/// 鼠标移动离开消息框上
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void plShow_MouseLeave(object sender, EventArgs e)
{
this.Timer_Close.Start();
}
xzq12345 2012-01-04
  • 打赏
  • 举报
回复
是WinForm
小火龙果 2012-01-04
  • 打赏
  • 举报
回复
不可能啊 你说的web中的div吧 窗体如果你点击别的就自动跑到获得焦点窗体的下面了 如果一直在最上面就用showdilog 但是这种方法 显示的窗体必须关闭 其他窗体才能获得焦点

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧