submitボタンを押すと、入力したデータがgroupFormのテキストボックスに表示されますが、これは起こっていません。フォームを再起動するか、データが表示されるように「リフレッシュ」ボタンを押す必要があります。form2が開いているときにform1のコントロールが更新されない
UPDATE
私はこの問題にでゾーニング。
フォームに引数を渡して、どのグループのデータを表示するかを知る必要があります。
このようなフォームを開くと、入力したデータはきれいに表示されます。
form_addNewProfitObject.Show()
このようにして、フォームにはデータを追加するグループがわかりません。回避策はありますか?私はまた、の代わりにfrmReceiver.Show()
をしようとしましたが、違いはありません。私は私が使用している方法が機能しない理由全くわからないんだけど
...多分それはので、それはgroupForm.NewProfitObjectsItem(ByVal *snip*)
を呼び出し、groupForm
がnew
を使用して作成された場合、これは動作しません「提出」打つ時ですか?
ENDのUPDATE
ここではフォームのナンバーワン(groupForm.vb)に 'リフレッシュ' ボタンを押すためのコードです。
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
populate(Form1.main.Groups(theMainGroupID).GroupObjects(theGroupID))
End Sub
そして、ここでは(最後に)そのまったく同じ機能が、からform_addNewProfitObject.vbを呼び出す送信ボタン、用のコードです。
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Try
Dim groupID As Integer = theGroupID
'New ProfitObject
ReDim Preserve Form1.main.Groups(theMainGroupID).GroupObjects(theGroupID).ProfitObjects(Form1.main.Groups(theMainGroupID).GroupObjects(theGroupID).ProfitObjects.Length)
Dim ProfitObjectID As Integer = Form1.main.Groups(theMainGroupID).GroupObjects(theGroupID).ProfitObjects.Length - 2
Form1.main.Groups(theMainGroupID).GroupObjects(theGroupID).ProfitObjects(ProfitObjectID) = New ProfitObject
'Set ProfitObject properties
'Set ID
Form1.main.Groups(theMainGroupID).GroupObjects(theGroupID).ProfitObjects(ProfitObjectID).id = ProfitObjectID
'Set Name
Form1.main.Groups(theMainGroupID).GroupObjects(theGroupID).ProfitObjects(ProfitObjectID).name = TextBox1.Text
'Set Profit
Form1.main.Groups(theMainGroupID).GroupObjects(theGroupID).ProfitObjects(ProfitObjectID).profit = TextBox2.Text
'Set TypeID
Form1.main.Groups(theMainGroupID).GroupObjects(theGroupID).ProfitObjects(ProfitObjectID).typeID = TextBox3.Text
'Set Rarityd
Form1.main.Groups(theMainGroupID).GroupObjects(theGroupID).ProfitObjects(ProfitObjectID).rarity = TextBox4.Text
'populate(Form1.main.Groups(groupID))
Dim textt As String = "ID" & ProfitObjectID.ToString
groupForm.NewProfitObjectsItem(textt, Form1.main.Groups(theMainGroupID).GroupObjects(theGroupID).ProfitObjects(ProfitObjectID).name, Form1.main.Groups(theMainGroupID).GroupObjects(theGroupID).ProfitObjects(ProfitObjectID).profit, Form1.main.Groups(theMainGroupID).GroupObjects(theGroupID).ProfitObjects(ProfitObjectID).rarity, Form1.main.Groups(theMainGroupID).GroupObjects(theGroupID).ProfitObjects(ProfitObjectID).typeID)
groupForm.populate(Form1.main.Groups(theMainGroupID).GroupObjects(theGroupID))
Catch ex As Exception
MsgBox(ex.Message)
End Try
groupForm.Refresh()
Me.Close()
End Sub
だけProfitObjectsアレイ内のすべてのアイテムにわたってループし、NewProfitObjectsItemを呼び出し「移入」(Iは、テスト目的のために後者の機能の終了時にgroupForm.populate()を追加し、私はそれを必要とすべきではない知っていますそれぞれについて)。
とにかく; 2番目のフォームからデータを送信すると、groupFormは自動的に新しいデータを表示しません。私は、リフレッシュボタンを押すか、フォームを再起動する必要があります(フォームロード時にpopulate()を呼び出す)。
新しいアイテムを送信した直後に表示したいだけです。そしてそれは、groupForm.NewProfitObjectsItem()
がそうしているからです。そしてそれを打ち消すために、私はgroupForm.populate()
を追加しました。私はそれが外部のフォームから呼び出されているため、または他のフォームが開いている/フォーカスを持っているので、それが動作していないと仮定しています..任意のアイデア?
フォームクラスではなくファイル名を変更したようです。 'Form1'とは何ですか? –
@ OlivierJacot-Descombes Form1はこれとは無関係です。 – natli
'Form1.main.Groups(theMainGroupID).GroupObjects(theGroupID).ProfitObjects(ProfitObjectID)'。あなたがそれを書いたときにベビーシールが死んだ。どのようにしてそのようになったのか、リバースエンジニアリングするのは非常に難しい。修理する。 –