作成日: 2024/02/02 最終更新日: 2024/02/02
文書種別
使用方法
詳細
予定ダイアログボックスにデフォルトで表示される各項目のラベルを変更したり、項目そのものを非表示にしたりするには、Windowsメッセージを処理するためのWndProcメソッドをオーバーライドして対応することができます。
表示される予定ダイアログは、Application.OpenForms[1]の形で参照できます。
このフォーム上のコントロールの子コントロールに対して、TextプロパティやVisibleプロパティを設定することで、対応することが可能になります。
例えば、件名、場所のラベルを変更するには、Application.OpenForms[1]に含まれる"pnSubject"コントロール下の子コントロールのTextプロパティを設定します。
また、終了時刻のラベルを変更し「終日」を非表示にするには、同フォームの"pnTime"コントロール下の子コントロールのTextプロパティやVisibleプロパティを設定します。

以下に、コード全体を記載します。
(メモ)
・Application.OpenForms[1]に含まれる各種コントロールの名前は、デバッグ出力画面で確認して下さい。
・パブリックでないメンバーについては、これらの設定はできませんので、ご了承ください。
◎サンプルコード(VB)
表示される予定ダイアログは、Application.OpenForms[1]の形で参照できます。
このフォーム上のコントロールの子コントロールに対して、TextプロパティやVisibleプロパティを設定することで、対応することが可能になります。
例えば、件名、場所のラベルを変更するには、Application.OpenForms[1]に含まれる"pnSubject"コントロール下の子コントロールのTextプロパティを設定します。
また、終了時刻のラベルを変更し「終日」を非表示にするには、同フォームの"pnTime"コントロール下の子コントロールのTextプロパティやVisibleプロパティを設定します。
以下に、コード全体を記載します。
(メモ)
・Application.OpenForms[1]に含まれる各種コントロールの名前は、デバッグ出力画面で確認して下さい。
・パブリックでないメンバーについては、これらの設定はできませんので、ご了承ください。
◎サンプルコード(VB)
Public Class Form1
Protected Overrides Sub WndProc(ByRef m As Message)
MyBase.WndProc(m)
If Application.OpenForms.Count 1 Then
If Application.OpenForms(1).Name Is "AppointmentForm" Then
'件名、場所、ラベルのテキストを変更
Application.OpenForms(1).Controls("pnSubject").Controls("lblSubject").Text = "件名XXXX"
Application.OpenForms(1).Controls("pnSubject").Controls("lblLocation").Text = "場所YYYY"
'終了時刻のラベルを変更し、「終日」を非表示にする
Application.OpenForms(1).Controls("pnTime").Controls("lblEnd").Text = "終了時刻AAAA"
'Application.OpenForms[1].Controls[1].Controls[5].Text = "終了時刻AAAA";
Application.OpenForms(1).Controls("pnTime").Controls("chkAllDay").Visible = False
End If
End If
End Sub
End Class
◎サンプルコード(C#)
namespace prj_Scheduler
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
protected override void WndProc(ref Message m)
{
base.WndProc(ref m);
if (Application.OpenForms.Count 1)
{
if (Application.OpenForms[1].Name == "AppointmentForm")
{
//件名、場所、ラベルのテキストを変更
Application.OpenForms[1].Controls["pnSubject"].Controls["lblSubject"].Text = "件名XXXX";
Application.OpenForms[1].Controls["pnSubject"].Controls["lblLocation"].Text = "場所YYYY";
//終了時刻のラベルを変更し、「終日」を非表示にする
Application.OpenForms[1].Controls["pnTime"].Controls["lblEnd"].Text = "終了時刻AAAA";
//Application.OpenForms[1].Controls[1].Controls[5].Text = "終了時刻AAAA";
Application.OpenForms[1].Controls["pnTime"].Controls["chkAllDay"].Visible = false;
}
}
}
}
}