开发者

Get value in textbox of modal form upon return from form.ShowDialog

I'm showing a modal form with 2 textboxes; first textbox is passed from the caller by passing a string to the constructor of the modal form. The 2nd textbox is blank and I type data into it and then click OK.

I cannot retrieve the value typed into the 2nd textbox (in fact, a breakpoint in my btnOK_click code does not stop execution).

MetaDataForm getMetaData = new MetaDataForm(theRootFolder.FolderPath);
getMetaData.ShowDialog();
if (getMetaData.DialogResult == DialogResult.OK)
    {
        string d1 = getMetaData.Meta1;
        string d2 = getMetaData.Meta2;     // this is always null !

and in the modal form:

public partial class MetaDataForm : Form
{
    public string Meta1 { get; set; }     // via auto-implemented properties
    public string Meta2 { get; set; }

    public MetaDataForm(string folder)
    {
        InitializeComponent();
        this.label1.Text = folder;
        this.Meta1 = ParseOutlookFolder(folder);
        this.txtMeta1.Text = this.Meta1;
    }
    private string ParseOutlookFolder(string folder)
    {
        string[] a = folder.Split('\\');
        return a[a.Length - 1];

    }
    private void btnOK_click(object sender, EventArgs e)
    {
        this.Meta2 = this.txtMeta2.Text;  // copy from text box into public property (not working?)
        this.Meta1 = this.txtMeta1.Text;
        this.DialogResult = DialogResult.OK;   // added per 1st reply below but no improvement
        this.Close();
    }

EDIT: Please note:

When a breakpoint is set on this line in the btnOK_click event:

this.Meta2 = this.txtMeta2.Text;    // copy from text box into public property

..it is never "hit". Could this be why when I do stop execution on this line:

string d2 = getMetaData.Meta2;   开发者_JAVA技巧  // this is always null !

..it is always null ?

In short, how do you grab a value from a form when you resume in the main code after showing a modal form?


(in fact, a breakpoint in my btnOK_click code does not stop execution

Sounds like the event handler got removed while doing changes on the form, check the designer code for something like:

this.btnOK.Click += new System.EventHandler(this.btnOK_Click);

or check the Click event handler is pointing to the correct function in the design view for this form.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜