作者kojiro1982 (N/A)
看板C_Sharp
标题Re: 请问使用何种元件盖住 PictureBox 并且能透明씠…
时间Thu Oct 11 22:46:41 2007
※ 引述《llama (阿誉)》之铭言:
: ※ 引述《kaizan (kaizan)》之铭言:
: : [System.Runtime.InteropServices.DllImport("User32.dll")]
: : private static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent);
: : private void button1_Click(object sender, EventArgs e)
: : {
: : Form2 f2 = new Form2();
: : SetParent(f2.Handle, this.Handle);
: : f2.Show();
: : }
: : 试试!
: : 但至於如何取得作用和对到picture的位置
: : 可能无法作用,是否有人可以解解
: 我想尝试的东西在於如果一个父视窗上面有两个子视窗重叠在一起,
: 该如何:
: 1. 让上层的子视窗可以透明地看到下层子视窗的 layout。
: 2. 如何在上层利用周边装置,如键盘、滑鼠时,可以间接作用到下层
: 的子视窗
: 关於第一点的部分,好像要让 Form 变成透明,就不能设定 mdi,因为
: 都透明不了,怪怪的!!! 只在两个视窗是独立时,设定 Opacity 或者
: TransParencyKey 会有效力。不知是否我搞错了!!
: 关於第二点的部分,本来想说在作用上层视窗後,就呼叫下层子视窗的
: Focus(),不过原来这样没有用XD!!!
覆写Form2的属性ShowWithoutActivation 使其成为顶层视窗
但不是作用视窗
只要在form2加上code
protected override bool ShowWithoutActivation
{
get
{
return true;
}
}
当然把form2设为透明 或半透明比较看的出效果
接着在form1随便加控制项button1 textBox1
接着在form1的button1_click事件写
form2.show();
textBox1.focus();
就可以看到form2 并且在form1 的textBox1输入东西
很阳春 不知道你是否要像这样
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.228.109.203
※ 编辑: kojiro1982 来自: 61.228.109.203 (10/11 22:49)
※ 编辑: kojiro1982 来自: 61.228.109.203 (10/11 22:53)
1F:推 llama:其实我是想要在 form2 上面设定一些控制项的事件 10/12 00:23
2F:→ llama:点选 form2 的某些事件,就可以触发 form1 当中的某些元件 10/12 00:25
3F:→ llama:当然 form2 是在 form1 上面,且 form2 上面的东西是透明的 10/12 00:26
4F:→ llama:不过举的例子当中, form1和form2都是在某个Form的子视窗嘛? 10/12 00:27
5F:→ llama:我把 form1 和 form2 弄成某个 Form 的子视窗後便不能变透明 10/12 00:27
6F:→ llama:感谢您的用心,明天马上去试试..:) 10/12 00:29
7F:→ kojiro1982:MDI子表单好像弄不出透明耶 糟 10/12 00:42
8F:推 llama:试了很久 ~"~ 10/12 13:27
9F:推 llama:没有人会这样干喔 ~"~ 10/13 11:16