2009年06月23日


ダイアログの呼び出しとオーナーの参照

Vbform
まずフォームにテキストボックスとボタンを作成し、
ボタンでダイアログを開き、ダイアログ側で終了時に
テキストボックスにメッセージをセットします
Public Class Form1

	Private Sub Button1_Click(ByVal sender As System.Object, _
	ByVal e As System.EventArgs) Handles Button1.Click


		' ****************************************************************
		' ダイアログのインスタンスを作成
		' ****************************************************************
		Dim MyDialog As New Dialog1()

		' ダイアログを開く
		Dim ret As DialogResult = MyDialog.ShowDialog(Me)

		' 閉じられた場合の戻り値の処理
		If ret = Windows.Forms.DialogResult.OK Then
			MessageBox.Show("正常処理")
		End If
		If ret = Windows.Forms.DialogResult.Cancel Then
			MessageBox.Show("キャンセル処理")
		End If

		' ダイアログを開放
		MyDialog.Dispose()

	End Sub
End Class
オーナーのテキストボックスを参照する為に、Controls コレクションを使用します。
そのままでは、テキストボックスとしてのインターフェイスを持たないので、
CType で TextBox クラスにキャストしています
Imports System.Windows.Forms

Public Class Dialog1

	' ****************************************************************
	' OK ボタン
	' ****************************************************************
	Private Sub OK_Button_Click(ByVal sender As System.Object, _
	ByVal e As System.EventArgs) Handles OK_Button.Click

		' 親フォームのコントロールを参照する
		CType(Me.Owner.Controls.Item("TextBox1"), TextBox).Text = "OK"
		' CType(Me.Owner, Form1).TextBox1.Text = "OK"

		' ダイアログの戻り値を設定してダイアログを終了する
		Me.DialogResult = System.Windows.Forms.DialogResult.OK
		Me.Close()

	End Sub

	' ****************************************************************
	' CANCEL ボタン
	' ****************************************************************
	Private Sub Cancel_Button_Click(ByVal sender As System.Object, _
	ByVal e As System.EventArgs) Handles Cancel_Button.Click

		' 親フォームのコントロールを参照する
		CType(Me.Owner.Controls.Item("TextBox1"), TextBox).Text = "CANCEL"
		' CType(Me.Owner, Form1).TextBox1.Text = "CANCEL"

		' ダイアログの戻り値を設定してダイアログを終了する
		Me.DialogResult = System.Windows.Forms.DialogResult.Cancel
		Me.Close()

	End Sub

End Class


posted by at 2009-06-23 14:08 | VB.NET Framework2.0 | このブログの読者になる | 更新情報をチェックする
Seesaa の各ページの表示について
Seesaa の 記事がたまに全く表示されない場合があります。その場合は、設定> 詳細設定> ブログ設定 で 最新の情報に更新の『実行ボタン』で記事やアーカイブが最新にビルドされます。

Seesaa のページで、アーカイブとタグページは要注意です。タグページはコンテンツが全く無い状態になりますし、アーカイブページも歯抜けページはコンテンツが存在しないのにページが表示されてしまいます。

また、カテゴリページもそういう意味では完全ではありません。『カテゴリID-番号』というフォーマットで表示されるページですが、実際存在するより大きな番号でも表示されてしまいます。

※ インデックスページのみ、実際の記事数を超えたページを指定しても最後のページが表示されるようです

対処としては、このようなヘルプ的な情報を固定でページの最後に表示するようにするといいでしょう。具体的には、メインの記事コンテンツの下に『自由形式』を追加し、アーカイブとカテゴリページでのみ表示するように設定し、コンテンツを用意するといいと思います。


※ エキスパートモードで表示しています

アーカイブとカテゴリページはこのように簡単に設定できますが、タグページは HTML 設定を直接変更して、以下の『タグページでのみ表示される内容』の記述方法で設定する必要があります

<% if:page_name eq 'archive' -%>
アーカイブページでのみ表示される内容
<% /if %>

<% if:page_name eq 'category' -%>
カテゴリページでのみ表示される内容
<% /if %>

<% if:page_name eq 'tag' -%>
タグページでのみ表示される内容
<% /if %>
この記述は、以下の場所で使用します