【问题标题】:c# Forward Values to Other Forms Questionc# 将值转发到其他形式的问题
【发布时间】:2021-02-17 21:14:44
【问题描述】:

表格:frm_user_cd的网格视图中选择员工姓名和部门名称的部分,将值移动到表格的组合框:frm_gjmjs0。 运行下面的代码会出现System.NullReferenceException等问题。

我希望我可以将frm_user_cd 的网格视图的值直接赋予frm_gjmjs0 的组合框。但是我不知道如何将值导入frm_user_cd的文本框并传回frm_gjmjs0的组合框并创建一个字符串类型的全局变量

user = dgv_user.Rows[e.RowIndex].Cells[1].Value.ToString();

当一个变量被声明并传递给frm_gjs0.Cbx_user_cd时,也会发生同样的错误。

private void dgv_user_CellClick(object sender, DataGridViewCellEventArgs e)
{
    tbx_emp.Text = dgv_user.Rows[e.RowIndex].Cells[1].Value.ToString();
    tbx_dept.Text = dgv_user.Rows[e.RowIndex].Cells[3].Value.ToString();
}

private void btn_user_Click(object sender, EventArgs e)
{
    try
    {
        frm_gjmjs0.cbx_user_cd.Text = tbx_emp.Text;
        frm_gjmjs0.cbx_dept_cd.Text = tbx_dept.Text;
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
}

【问题讨论】:

  • 如果指的是Windows Forms,请添加“winforms”标签
  • @KlausGütter Srry.. 添加它:)
  • @MathewHD 嗯...我没听懂你的回答。

标签: c# winforms gridview combobox


【解决方案1】:

尝试定义一个属性来访问frm_gjmjs0中的cbx_user_cd

public ComboBox CBXUser
{
    get { return cbx_user_cd; }
    set { value = cbx_user_cd; }
}

然后通过Application.OpenForms Property获取打开的frm_gjmjs0实例。

private void buttoninfrm_user_cd_Click(object sender, EventArgs e)
{
    // get frm_gjmjs0 instance
    frm_gjmjs0 form = (frm_gjmjs0)Application.OpenForms["frm_gjmjs0"];
    // modify cbx_user_cd text
    form.CBXUser.Text = "123";
}

同样的方法可以设置cbx_dept_cd

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-28
    • 2014-09-09
    • 1970-01-01
    • 2017-08-18
    • 2016-03-10
    • 2016-01-29
    • 2013-10-15
    • 1970-01-01
    相关资源
    最近更新 更多