|
▼ようたん さん:
こんにちは。
>実行するのは、フォームMainFormのボタンを押すとフォームSubForm
>が表示され、SubFormのTextBoxに数値を入力し同フォームのボタン
>を押すとそのフォームが閉じてMainFormのTextBoxにSubFormから値が
>渡されて表示されるという動作です。
>以下TagプロパティとPropertyプロシージャを使った2例のうちで
>それともどちらでも問題がないものなのでしょうか?
作動しているという事なら、どちらも問題がないですが、
厳密にみると・・・、
私なら、Tagプロパティを使ったコードですかねえ・・・。
これは、Tagプロパティを使っているから良いとか、
Propertyプロシージャを使うことがNG 等と言うことではありません。
本当は、
SubForm.show myChk
とShowメソッドでパラメータ渡しが出来たら ベストですよね?
これが出来ないから、ここの手続きを出来る限り明確に且つ、汎用的に
定義するべきだ という立場として意見ですが、
2のPropertyプロシージャを使った例では、
Private Sub CommandButton1_Click()
MainForm.atai = TextBox1.Text
Unload Me
End Sub
とSubformの出力データの以降先がMainForm.atai と固定された手続きになってしまい、
汎用性が1に比べると劣るように思えました。
上記の理由ですから、Propertyプロシージャを使う、使わないの問題ではないです。
尚、1に関しても
Private Sub CommandButton1_Click( )
Dim myChk As String
With SubForm
.Show
myChk = .Textbox1.Text
End With
Unload SubForm
If IsNumeric(myChk) Then
TextBox1.Text = myChk
End If
End Sub
では、問題があるのでしょうかねえ!!
Tagというプロパティで中身が想像しやすいなら、これでも良いですけどね!!
以上、気が付いた点です、というより、ざっとみた感想です。
>
>1、Tag の例
>
> MainForm ///////////////////////////////
>
> Private Sub CommandButton1_Click( )
>
> Dim myChk As String
>
> With SubForm
> .Show
> myChk = .Tag
> End With
>
> Unload SubForm
>
> If IsNumeric(myChk) Then
> TextBox1.Text = myChk
> End If
>
> End Sub
>
> SubForm ///////////////////////////////
>
> Private Sub CommandButton1_Click( )
>
> With Me
> .Tag = TextBox1.Text
> . Hide
> End With
>
> End Sub
>
>
>1、Property の例
>
> MainForm ///////////////////////////////
>
> Dim myChk As String
>
>
> Public Property Let atai(ByVal newdata As String)
>
> myChk = newdata
>
> End Property
>
> Private Sub CommandButton1_Click()
>
> SubForm.Show
>
> If IsNumeric(myChk) Then
> TextBox1.Text = myChk
> End If
>
> End Sub
>
> SubForm ///////////////////////////////
>
> Private Sub CommandButton1_Click()
>
> MainForm.atai = TextBox1.Text
>
> Unload Me
>
> End Sub
|
|