作者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