函数未在 C# 中执行
Function not executing in C#
我有一个函数,根据 table 中找到的学生 ID,用从学生 table 中合并的学生姓名和学生姓氏填充 DataGridView
中的列,我之前提到的那个专栏位于其中。
函数为:
public void replace_namesSurnames()
{
foreach (DataGridViewRow row in attendance_dgw.Rows)
{
int student_id = Convert.ToInt32(row.Cells["student_id"].Value);
if (row.Index < attendance_dgw.Rows.Count - 1)
{
string text = attendanceRecording.Tables["students"].Rows[student_id - 1]["student_name"].ToString() + " " + attendanceRecording.Tables["students"].Rows[student_id - 1]["student_surname"].ToString();
row.Cells["stud_nameSurname"].Value = text;
}
}
}
如果我通过单击按钮执行此功能,它就可以工作。第一次初始化表单时也有效
我已尝试向该 DataGridView
添加一个 CellValueChanged
事件,但该函数未执行:
private void attendance_dgw_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
replace_namesSurnames();
}
有什么解决办法吗?我真的看不出这里有什么问题。
好的,所以我的朋友帮我找到了解决方案。
首先,我忘了说,这个函数的主要目的是,相应地改变 Name Surname 以改变 student_id。但!正在使用单独的表格更改学生 ID。
所以主要问题(为什么这一切都开始了)是,那个更新那些名字姓氏值的函数位于主窗体中,但我是从窗体中执行它的,它改变了学生 ID。
在更改学生 ID 的表单中,我制作了一个主表单对象,以访问该主表单中的功能。但是,程序似乎没有看到该函数内部的内容,这就是它没有执行的原因。
所以,解决办法是——
将主窗体传递给进行更改的窗体。
detailsTableForm details = new detailsTableForm(attendanceRecording, cellValue,e.RowIndex,e.ColumnIndex,0,columnName,attendance_dgw, this);
那里的主要焦点是将“this”(主窗体)传递给“detailsTableForm”(窗体,在主窗体中更改学生 ID)。
当我将“this”(主表单)传递给“detailsTableForm”时,我将收到的表单分配给“detailsTableForm”中的表单对象,然后一切正常。
我有一个函数,根据 table 中找到的学生 ID,用从学生 table 中合并的学生姓名和学生姓氏填充 DataGridView
中的列,我之前提到的那个专栏位于其中。
函数为:
public void replace_namesSurnames()
{
foreach (DataGridViewRow row in attendance_dgw.Rows)
{
int student_id = Convert.ToInt32(row.Cells["student_id"].Value);
if (row.Index < attendance_dgw.Rows.Count - 1)
{
string text = attendanceRecording.Tables["students"].Rows[student_id - 1]["student_name"].ToString() + " " + attendanceRecording.Tables["students"].Rows[student_id - 1]["student_surname"].ToString();
row.Cells["stud_nameSurname"].Value = text;
}
}
}
如果我通过单击按钮执行此功能,它就可以工作。第一次初始化表单时也有效
我已尝试向该 DataGridView
添加一个 CellValueChanged
事件,但该函数未执行:
private void attendance_dgw_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
replace_namesSurnames();
}
有什么解决办法吗?我真的看不出这里有什么问题。
好的,所以我的朋友帮我找到了解决方案。
首先,我忘了说,这个函数的主要目的是,相应地改变 Name Surname 以改变 student_id。但!正在使用单独的表格更改学生 ID。
所以主要问题(为什么这一切都开始了)是,那个更新那些名字姓氏值的函数位于主窗体中,但我是从窗体中执行它的,它改变了学生 ID。
在更改学生 ID 的表单中,我制作了一个主表单对象,以访问该主表单中的功能。但是,程序似乎没有看到该函数内部的内容,这就是它没有执行的原因。
所以,解决办法是—— 将主窗体传递给进行更改的窗体。
detailsTableForm details = new detailsTableForm(attendanceRecording, cellValue,e.RowIndex,e.ColumnIndex,0,columnName,attendance_dgw, this);
那里的主要焦点是将“this”(主窗体)传递给“detailsTableForm”(窗体,在主窗体中更改学生 ID)。 当我将“this”(主表单)传递给“detailsTableForm”时,我将收到的表单分配给“detailsTableForm”中的表单对象,然后一切正常。