调用函数后在文本框中显示文本

时间:2018-09-19 09:44:56

标签: c# winforms

我有一个程序可以根据datagridview数据发送电子邮件。发送电子邮件时效果很好,但是我希望在每次函数调用后更改文本框的内容。

<div class="form--input form--input-container form--select hasPlaceholder" data-type="dropdown-label" data-required="true">
    <label for="countries">Dropdown</label>
    <input type="hidden" id="countries" name="maritalStatus">
    <input class="input--main" type="button" data-element="select" value="">
    <span class="placeholder">A Dropdown with stuff</span>
    <span class="selectChoice"></span>
    <div class="framework dropdown dropdown--select-container">
        <div id="" class="framework dropdown--select-item" data-value="UK" data-option="0">
            <p class="framework text--paragraph     ">
                UK
            </p>
            <span class="dropdown--item-line"></span>
        </div>
        <div id="" class="framework dropdown--select-item" data-value="Russia" data-option="1">
            <p class="atom text--paragraph     ">
                Russia
            </p>
            <span class="dropdown--item-line"></span>
        </div>
    </div>
</div>
<div my-noteEvent="" data-element="maritalStatus" data-target="myTarget" data-event="onchange" data-action="[{'Single':{'show':'#div1 #div3'}, {'married':{'show':'#div1 #div3'}}]">
</div>

在运行程序时,仅在函数始终调用(datagrid循环中的所有行)时,文本框的内容才会更改。

因此,每次调用函数时,如何使文本框更改内容。

感谢您的阅读和帮助!

2 个答案:

答案 0 :(得分:0)

使用html5validator。在后台线程(DoWork方法)中发送电子邮件,并在UI线程(ProgressChanged方法)中显示状态。

答案 1 :(得分:0)

如果您不想使用BackGroundWorker,则可以强制文本框自行更新。
试试这样的东西

foreach (DataGridViewRow row in dataGridView1.Rows)
{
    textBox1.Text += "Processing .... " + row.Cells["data"].Value.ToString();
    textBox1.Update();
    sendMail("subject", row.Cells["data"].Value.ToString(), "emailString");
    textBox1.Update();
}