需要定义控制流程和功能

时间:2011-04-06 07:54:59

标签: c# .net winforms

我有一个项目,其要求如下,

  1. 登录表单打开并询问用户名和密码。
  2. 登录成功 - 关闭登录表单,打开另一个主表单,此处将添加所有功能。
  3. 在主窗体中点击一个Call按钮,它会弹出一个拨号盘。
  4. 当在拨号盘上输入数字并单击“确定”时,控件将返回到相同的主窗体。
  5. 点击退出时,它会再次带我进入登录界面。
  6. 为此,任何人都可以向我解释以下几点:

    1. 如何将控件从一种形式转移到另一种形式?
    2. 我必须确保当用户点击关闭'x'时,我必须退出并关闭窗口吗?
    3. 需要一些粗略的课程信息。
    4. 提前致谢。

      这是我之前用来将数据从一种形式传送到其他形式的

      public partial class DialPad:Form     {         public MainGUI guiObject;

          public DialPad(MainGUI mG)
          {
              InitializeComponent();
              guiObject = mG;
          }  
      

3 个答案:

答案 0 :(得分:3)

通过它的声音你的拨号形式应该是一个对话..

class MyDiallerDialog : Form
{
    public String DialledNumber
    {
        get { return this.txtNumber.Text; } // Or however the form stores its number...
    }
}

class MyMainForm : Form
{
    void btnCall_Click(object sender, EventArgs e)
    {
        using (var dialog = new MyDiallerDialog())
        {
            if (dialog.ShowDialog() == DialogResult.OK)
            {
                String number = dialog.DialledNumber;

                // do something interesting with the number...
            }
        }
    }
}

答案 1 :(得分:1)

对于你的观点没有。 2

  

我必须确保用户点击时间   在关闭'x',我必须退出   并关闭窗户?

在表单FormClosing的情况下,请查看e.ClosingReason。

因此,如果用户使用关闭按钮(X)关闭,则ClosingReason将为UserClosing。所以检查一下,然后在其中写下适当的代码。

  

如何从一个控件传输控件   形成另一个?

例如 如果您想从Dialpad表单中获取主表单中的数字。

主要形式的构造函数中的第一个

public static MainForm instance = null;
public string numberInMainForm = null;
public MainForm()
{

instance = this;
}

现在在你的拨号盘表格中,当用户输入号码时,你可以直接从拨号盘表格中将号码(或任何其他变量。)传递给主表格。

在拨号盘表格中只写:

MainForm.instance.numberInMainForm = number;

就是这样。你完成了!!

答案 2 :(得分:1)

让我们假设您的第一个表单是 loginform , 假设用户在登录表单上按确定,依此类推 OK_click() 事件呼叫另一种形式。 假设您的另一个表单的名称是MainForm.cs,那么您可以使用...

进行调用
MainForm mf = new Mainform()

假设您想要在登录表单的确定时关闭登录表单,您可以按以下方式保留订单。

 private void OK_Click(object sender, EventArgs e)
    {
       . . .
        // your validations
        //return bool  (true or false ) to confirm you have complted validations

        MainForm mf = new Mainform();
        mf.show();  //  or you can use  mf.ShowDialog();

        . . .

        . . .
        this.close();



    }

当您关闭MainForm时,其控件将直接转到mf.show();

之后的下一行

关闭任何表格使用 this.close()命令。

我希望这对您有帮助,您现在可以开始处理您的项目了。

修改

添加一个名为commondata.cs的新类文件,并使用静态变量,如

 public static string myString = "";

您可以将所有静态函数和变量保存在公共文件中,例如commonData.cs,以便您可以从任何地方修改其值,并且可以在任何地方使用。

在关闭当前表单之前,存储静态myString 中的信息,以便即使您关闭当前表单相关信息也会存储在myString&您可以使用commonData.myString命令以任何形式访问它。

string temp = commonData.myString;

此致

Sangram Nandkhile。