2016-02-11 30 views
1

C#新手在這裏,我想知道是否有辦法在運行時打開表單,從中獲取輸入,然後關閉它。我試圖在運行時將它創建爲對象,但無法訪問它。C#直接從代碼打開表單並獲取輸入

var myForm1 = new myForm(); 
myForm1.Show(); 

不過,雖然我創建的形式,另一種cs文件,我得到一個語法錯誤說,它不能被發現。我錯過了什麼?或者我應該使用除表單之外的其他東西?

編輯:

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Windows.Forms; 

namespace ert 
{ 
    public partial class ConnectionForm: Form 
    { 
     public BaglantiBilgileri() 
     { 
      InitializeComponent(); 
     } 
    } 
} 

這是我的窗體的代碼,我已經創造了它作爲一個單獨的文件form.cs

var myForm = new ConnectionForm(); 

這是我的主要執行的代碼塊中,它是一個獨立.cs文件,它說類型或名稱空間無法找到,我做錯了嗎?

+0

你能上的錯誤闡述,也許張貼錯誤字符串?什麼不能找到:myForm類? – Chara

+0

您如何從其他表單中讀取值?你能告訴我們代碼嗎? –

回答

1

請提供您收到的錯誤消息。在運行時不管怎麼說打開窗體並關閉它,當您檢索一些數據可以做這樣的:

using(Form myForm1 = new myForm()) 
{ 
    //Initialize the components of your form 

    DialogResult result = myForm1 .ShowDialog(); 
    if(result == DialogResult.OK) 
    { 
     //return whatever it is you want to return 
     //for example via a getter inside of myForm1 
    } 
} 

當你關閉窗體形式的DialogeResult自動設置,但你也可以將它設置編程從內您的表單:

this.DialogResult = DialogResult.OK 

發生特定事件後,您會知道何時檢索數據。

+0

問題是,當我編寫「Form myForm1 = new myForm()」時,IDE說myForm未定義,並用紅色標出。 – EvsizTospaa

+0

嘗試將構造函數「BaglantiBilgileri」重命名爲「ConnectionForm」,因爲構造函數必須與其構造函數的類具有相同的名稱。同時確保兩個類具有相同的名稱空間。 –

+0

非常感謝,結合了這兩個答案爲我工作 – EvsizTospaa

1

您需要波紋線添加到主窗體:

using ert; 
+0

非常感謝,結合了爲我工作的答案 – EvsizTospaa

+0

歡迎隨時。 –