全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:4973
推到 Plurk!
推到 Facebook!

VB.NET 中使用多表單

答題得分者是:shunchia63
marco6984
一般會員


發表:3
回覆:3
積分:1
註冊:2008-03-18

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-03-19 13:33:02 IP:61.218.xxx.xxx 訂閱
請問一下,如何在Vb.net中 兩個表單的值如何傳遞
例如 Form1 有一個 TextBox1 在Form2裡 按了Button可以將一些數值Show 在Form 1的TextBox1裡
有看到 一個範例
dim f1 as new form1
f1.TextBox1.text &= " string "
f1.show()

但form2 會被疊在form1下,要重新再點出來,才能再控制。感覺不好,是否有別的方式。

另一個問題 假設在Form2操作時 限制只有Form2顯示在最上層,且Form1不能被操作該如何寫?
shunchia63
高階會員


發表:26
回覆:141
積分:198
註冊:2007-05-22

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-03-19 14:45:24 IP:61.64.xxx.xxx 訂閱
請參考MSDN 說明
Class Form

Form.ShowDialog 方法
名稱說明
Form.ShowDialog () 以指定的擁有人將表單顯示為強制回應對話方塊。

編輯記錄
shunchia63 重新編輯於 2008-03-19 14:47:31, 註解 無‧
marco6984
一般會員


發表:3
回覆:3
積分:1
註冊:2008-03-18

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-03-19 17:26:51 IP:61.218.xxx.xxx 訂閱
剛剛查了一下form.ShowDialog的方法

以下是他的範例,那請問如何使用

Public Sub ShowMyDialogBox()
Dim testDialog As New Form2()

' Show testDialog as a modal dialog and determine if DialogResult = OK.
If testDialog.ShowDialog(Me) = System.Windows.Forms.DialogResult.OK Then
' Read the contents of testDialog's TextBox.
txtResult.Text = testDialog.TextBox1.Text
Else
txtResult.Text = "Cancelled"
End If
testDialog.Dispose()
End Sub 'ShowMyDialogBox





===================引 用 shunchia63 文 章===================
請參考MSDN 說明
Class Form

Form.ShowDialog 方法
名稱說明
Form.ShowDialog () 以指定的擁有人將表單顯示為強制回應對話方塊。



shunchia63
高階會員


發表:26
回覆:141
積分:198
註冊:2007-05-22

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-03-19 19:04:49 IP:61.64.xxx.xxx 訂閱
TEST CODE

From1.cs
加入一Button 呼叫Form2
private void button2_Click(object sender, EventArgs e)
{
Form2 f2 = new Form2();
DialogResult dr = f2.ShowDialog(this);


MessageBox.Show(dr.ToString()); //<---- 關看Form2 作了什麼回應
}


Form2.cs
加入一Button
或 X <--關掉Form
...
private void button1_Click(object sender, EventArgs e)
{
this.DialogResult = DialogResult.OK; // <----自訂 狀態
}







DialogResult 列舉型別

C#
[ComVisibleAttribute(true)] 
public enum DialogResult



成員名稱說明
Supported by the .NET Compact FrameworkAbort對話方塊傳回值是 Abort (通常由標記為 [中止] 的按鈕傳回)。
Supported by the .NET Compact FrameworkCancel對話方塊傳回值是 Cancel (通常由標記為 [取消] 的按鈕傳回)。
Supported by the .NET Compact FrameworkIgnore對話方塊傳回值是 Ignore (通常由標記為 [忽略] 的按鈕傳回)。
Supported by the .NET Compact FrameworkNo對話方塊傳回值是 No (通常由標記為 [否] 的按鈕傳回)。
Supported by the .NET Compact FrameworkNone對話方塊傳回 Nothing。這表示強制回應 (Modal) 對話方塊繼續執行。
Supported by the .NET Compact FrameworkOK對話方塊的傳回值是 OK (通常由標記為 [確定] 的按鈕傳回)。
Supported by the .NET Compact FrameworkRetry對話方塊傳回值是 Retry (通常由標記為 [重試] 的按鈕傳回)。
Supported by the .NET Compact FrameworkYes對話方塊傳回值是 Yes (通常由標記為 [是] 的按鈕傳回)。


marco6984
一般會員


發表:3
回覆:3
積分:1
註冊:2008-03-18

發送簡訊給我
#5 引用回覆 回覆 發表時間:2008-03-21 14:42:01 IP:61.218.xxx.xxx 訂閱
感謝各位的回覆。
我有另一個問題,在Form 1有一個TextBox1, Form 2也有一個 TextBox2 。當執行
Dim f As New form2
DialogResult = f.ShowDialog(Me)
會show出Form2 。
此時在Form2 的TextBox2輸入字串,在Form1 的TextBox1也可以看的相同的字串。該如何做?
謝謝。
shunchia63
高階會員


發表:26
回覆:141
積分:198
註冊:2007-05-22

發送簡訊給我
#6 引用回覆 回覆 發表時間:2008-03-21 15:20:46 IP:61.62.xxx.xxx 訂閱
From1.cs
加入一Button 呼叫Form2
private void button2_Click(object sender, EventArgs e)
{
Form2 f2 = new Form2();
DialogResult dr = f2.ShowDialog(this);


MessageBox.Show(dr.ToString()); //<---- 觀看 f2 作了什麼回應

if (dr==DialogResult.OK)
{
this.TextBox1.text = f2.TextBox1.text; //取資料 當f2 回覆 OK時
}


}


Form2.cs
加入一Button
或 X <--關掉Form
...
private void button1_Click(object sender, EventArgs e)
{
this.DialogResult = DialogResult.OK; // <----自訂 狀態
}




系統時間:2024-05-06 14:26:32
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!