相关疑难解决方法(0)

单击Visual C#Window Forms的透明度?

我制作了一个面板并将其设置为填满屏幕,现在我可以看到它下面的窗口,但我希望它能够点击,这意味着他们可以通过透明度单击文件或查看另一个对象的工具提示.

RE:这可能太明显了,但您是否尝试通过右键单击并选择"Send to Back"将面板发送到后面?

我的意思是像桌面或Firefox,而不是我的项目中的东西.

c# forms transparency visual-studio

14
推荐指数
1
解决办法
1万
查看次数

在C#中打开一个没有焦点的表单

我正在制作一些永远在顶的吐司作为形式,当我打开它们时,我希望它们在打开时不要从其他形式中夺走焦点.我怎样才能做到这一点?

谢谢

c# forms focus winforms

10
推荐指数
2
解决办法
6788
查看次数

GetWindowLong/SetWindowLong vs重写CreateParams?

以前当我想创建一个点击式表单时,我很想使用平台调用来设置扩展窗口样式(GetWindowLong/ SetWindowLongin user32.dll).

刚才我想让它对Alt + Tab窗口列表不可见,我发现了一个覆盖CreateParams设置扩展窗口样式而不是使用GetWindowLong/ 的示例SetWindowong.

现在我有这个:

protected override CreateParams CreateParams
{
    get
    {
        CreateParams cp = base.CreateParams;
        cp.ExStyle |= 0x80000 /* WS_EX_LAYERED */ | 0x20 /* WS_EX_TRANSPARENT */ | 0x80/* WS_EX_TOOLWINDOW */;
        return cp;
    }
}
Run Code Online (Sandbox Code Playgroud)

现在明显的变化不需要任何平台调用.

所以我的几个问题:

  1. Windows上是否存在任何功能差异?(只是说我现在还没有XP机器可以尝试.)
  2. 现在我没有平台调用,我的程序会在Linux/Mac上的Mono上运行吗?(如果我现在可以尝试,我不会在这里问你.)
  3. Control.CreateParams出现在msdn上,并有一个操作窗口样式的例子.那么为什么StackOverflow上的一些在线"示例"和答案会告诉人们使用GetWindowLong/ SetWindowLong

c# winforms

4
推荐指数
1
解决办法
1932
查看次数

反向表单点击?

所以你可以制作一个点击通过的表格......

进口:

[DllImport("user32.dll", SetLastError = true)]
static extern int GetWindowLong(IntPtr hWnd, int nIndex);

[DllImport("user32.dll")]
static extern int SetWindowLong(IntPtr hWnd, int nIndex, int dwNewLong);
Run Code Online (Sandbox Code Playgroud)

代码:

int initialStyle = GetWindowLong(this.Handle, -20);
SetWindowLong(this.Handle, -20, initialStyle | 0x80000 | 0x20);
Run Code Online (Sandbox Code Playgroud)

现在我将如何在运行一次代码后反转效果?

我试过这个:

int initialStyle = GetWindowLong(this.Handle, -20);
SetWindowLong(this.Handle, -20, initialStyle | 0x10000 | 0x10);
Run Code Online (Sandbox Code Playgroud)

但这没有用。

提前致谢!

c# forms winapi winforms

1
推荐指数
1
解决办法
211
查看次数

标签 统计

c# ×4

forms ×3

winforms ×3

focus ×1

transparency ×1

visual-studio ×1

winapi ×1