在我的vb.net项目中,我有3个表单。 void Start()
{
PlayerInfo[] allPlayersArray = new PlayerInfo[1];
allPlayersArray[0] = new PlayerInfo();
allPlayersArray[0].playerName = "name 0";
string allPlayersArrayJson = JsonHelper.ToJson(allPlayersArray);
print(allPlayersArrayJson);
PlayerPrefs.SetString("allPlayersArrayJson", allPlayersArrayJson);
string newJson = PlayerPrefs.GetString("allPlayersArrayJson");
print(newJson);
PlayerInfo[] newArray = new PlayerInfo[1];
newArray = JsonHelper.FromJson<PlayerInfo>(newJson);
print(newArray[0].playerName);
}
,home_mdi
和Viewfrm
。
AddDatafrm
上有一个UltraWinGrid,显示一些数据。点击Viewfrm
按钮后,add data
即会打开。保存数据后,表单将关闭。
此时,我希望AddDatafrm
上的UltraWinGrid更新/刷新并显示我添加的数据。目前,在我关闭Viewfrm
然后再次打开它之前,它不会显示。
图像显示了这一点。 (数据在开始时不存在,然后被添加并且不会出现。最终图像是显示新数据的表单,在我重新打开它之后。
如何更改此内容?
当前代码:
打开添加表单
Viewfrm
保存输入的信息(在添加表单上)
Private Sub btnAdd_Click(sender As Object, e As EventArgs) Handles btnAdd.Click
Using fp = New frmAddData(Globals.m_database)
If fp.ShowDialog() = DialogResult.OK Then
ugData.DataSource = Nothing
getPeople()
End If
End Using
End Sub
调用在View表单上加载数据库:
Private Sub btnSave_Click(sender As Object, e As EventArgs) Handles btnSave.Click
Dim m_cn As New OleDbConnection
m_cn = Globals.m_database.getConnection()
If txtFirstName.Text = "" Then
MsgBox("First name cannot be blank")
ElseIf txtLastName.Text = "" Then
MsgBox("Last name cannot be blank")
ElseIf txtAge.Text = "" Then
MsgBox("Age cannot be blank")
ElseIf txtPostCode.Text = "" Then
MsgBox("Postcode cannot be blank")
Else
Dim personID As Integer = database.SaveNewPerson(txtFirstName.Text, txtLastName.Text, txtAge.Text, txtPostCode.Text, m_cn)
MsgBox("Save successful")
txtFirstName.Text = ""
txtLastName.Text = ""
txtAge.Text = ""
txtPostCode.Text = ""
Globals.savedValue = True
Me.Close()
End If
End Sub
答案 0 :(得分:1)
在WinForm应用程序中,如果按下按钮并且其DialogResult
属性设置为除None之外的任何内容,则引擎会自动关闭模式对话框。然后Winform引擎将表单DialogResult设置为该按钮的相同属性,退出ShowDialog调用并返回单击按钮的DialogResult属性。
通常,这足以处理上述情况。 (或者,在用户选择是/否或确定/取消方案的一般情况下)
在您的代码中(如聊天中所述),您将“保存”按钮的DialogResult属性设置为DialogResult.None
。这意味着Winforms引擎不会自动关闭您的表单,您需要编写自己的结束例程。
但是,如果您忘记将Form属性DialogResult设置为DialogResult.OK,则您的调用代码将永远无法刷新网格,因为DialogResult.OK的测试失败。
因此,无论您必须关闭fromAddData实例的结束代码,请记住使用
设置表单DialogResult属性 Me.DialogResult = DialogResult.OK
或者,如果出现问题,请
Me.DialogResult = DialogResult.Cancel