DoboWiki
Top
> .NETプログラミング研究/13 をテンプレートにして作成
.NETプログラミング研究/13 をテンプレートにして作成
開始行:
#title(.NETプログラミング研究 第13号)
#navi(.NETプログラミング研究)
#contents
*.NETプログラミング研究 第13号 [#jb1098d4]
**.NET Tips [#d0567963]
***フォームの形を変える [#fd7b9ead]
#column(注意){{
この記事の最新版は「[[フォームやコントロールの形を変える>...
}}
フォームの形を四角(矩形)以外の形に変える方法としてここ...
形を変えたいフォームのRegionプロパティに、その形状を示し...
次の例はフォームをドーナッツ型にするコードです。ここでは...
#code(vbnet){{
Private Sub Form1_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
'フォームの大きさを適当に変更
Me.SetBounds(Me.Left, Me.Top, 301, 301, BoundsSpecifi...
'GraphicsPathオブジェクトの作成
Dim myGraphicsPath As System.Drawing.Drawing2D.Graphi...
New System.Drawing.Drawing2D.GraphicsPath()
'丸を描く
myGraphicsPath.AddEllipse(New Rectangle(0, 0, 300, 30...
'真ん中を丸くくりぬく
myGraphicsPath.AddEllipse(New Rectangle(100, 100, 100...
'Regionプロパティの設定
Me.Region = New Region(myGraphicsPath)
End Sub
}}
#code(csharp){{
private void Form1_Load(object sender, System.EventArgs e)
{
//フォームの大きさを適当に変更
this.SetBounds(this.Left, this.Top, 301, 301, BoundsS...
//GraphicsPathオブジェクトの作成
System.Drawing.Drawing2D.GraphicsPath myGraphicsPath =
new System.Drawing.Drawing2D.GraphicsPath();
//丸を描く
myGraphicsPath.AddEllipse(new Rectangle(0, 0, 300, 30...
//真ん中を丸くくりぬく
myGraphicsPath.AddEllipse(new Rectangle(100, 100, 100...
//Regionプロパティの設定
this.Region = new Region(myGraphicsPath);
}
}}
次の例はフォームの形を文字(この例では"DOBON!")にするも...
#code(vbnet){{
Private Sub Form1_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
Dim myGraphicsPath As New System.Drawing.Drawing2D.Gr...
'文字のサイズは50
myGraphicsPath.AddString("DOBON!", New FontFamily("Ar...
FontStyle.Bold, 50, New Point(0, 0), StringFormat...
Me.Region = New Region(myGraphicsPath)
End Sub
}}
#code(csharp){{
private void Form1_Load(object sender, System.EventArgs e)
{
System.Drawing.Drawing2D.GraphicsPath myGraphicsPath =
new System.Drawing.Drawing2D.GraphicsPath();
//文字のサイズは50
myGraphicsPath.AddString("DOBON!", new FontFamily("Ar...
(int) FontStyle.Bold, 50, new Point(0, 0),
StringFormat.GenericDefault);
this.Region = new Region(myGraphicsPath);
}
}}
そのほかの形に変える例につきましては、下のURLをご覧くださ...
-[[フォームやコントロールの形を変える>https://dobon.net/v...
次にForm.TransparencyKeyプロパティを使ってフォームの形を...
Windows2000以降のOSであれば、Form.TransparencyKeyプロパテ...
しかし残念なことに実際にはそう簡単にはいきません。私の試...
いろいろ試してみたところ、少なくとも私の環境では次のよう...
画像をフォームに描画するには、BackgroundImageプロパティを...
次の例ではフォームの形を"form.bmp"という画像ファイルに保...
#code(vbnet){{
Dim _formBitmap As Bitmap
Private Sub Form1_Load(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
'TransparencyKeyプロパティを指定する前に画像を読み込む
'フォームの形の画像を読み込む
_formBitmap = New Bitmap("form.bmp")
'画像の透明色を指定する
_formBitmap.MakeTransparent(Color.White)
'フォームの境界線をなくす
Me.FormBorderStyle = FormBorderStyle.None
'大きさを適当に変更
Me.Size = New Size(100, 100)
'透明を指定する
Me.TransparencyKey = Color.White
'フォームの背景色を透明色にする
Me.BackColor = Color.White
End Sub
Private Sub Form1_Paint(ByVal sender As Object, _
ByVal e As System.Windows.Forms.PaintEventArgs) _
Handles MyBase.Paint
'フォームの形の画像を描画する
e.Graphics.DrawImage(_formBitmap, 0, 0)
End Sub
}}
#code(csharp){{
Bitmap _formBitmap;
private void Form1_Load(object sender, System.EventArgs e)
{
//TransparencyKeyプロパティを指定する前に画像を読み込む
//フォームの形の画像を読み込む
_formBitmap = new Bitmap(@"form.bmp");
//画像の透明色を指定する
_formBitmap.MakeTransparent(Color.White);
//フォームの境界線をなくす
this.FormBorderStyle = FormBorderStyle.None;
//大きさを適当に変更
this.Size = new Size(100, 100);
//透明を指定する
this.TransparencyKey = Color.White;
//フォームの背景色を透明色にする
this.BackColor = Color.White;
}
private void Form1_Paint(object sender,
System.Windows.Forms.PaintEventArgs e)
{
//フォームの形の画像を描画する
e.Graphics.DrawImage(_formBitmap, 0, 0);
}
}}
**.NET質問箱 [#h0617ae4]
***メールのサブジェクトをデコードするには? [#y1303da9]
#column(注意){{
この記事の最新版は「[[メールのサブジェクトをデコードする>...
}}
''質問:''
受信したメールのSubjectをデコードしたいのですが、どのよう...
例「=?ISO-2022-JP?B?GyRCJCIkMSReJDckRiQqJGEkRyRIJCYhKhsoS...
''答え:''
ちゃんとしたものを作るにはRFC2047の知識が必要になると思い...
-[[RFC2047>http://www.ietf.org/rfc/rfc2047.txt]]
#code(vbnet){{
'/ <summary>
'/ メールのサブジェクトをデコードする
'/ </summary>
'/ <param name="subject">デコードするメールサブジェクト</...
'/ <returns>デコードされた文字列</returns>
Private Shared Function DecodeMailSubject(ByVal subject A...
'要素を分解する
Dim s As String() = subject.Split("?"c)
Dim b() As Byte
If s(2) = "B" Then
'Base64形式の時
b = System.Convert.FromBase64String(s(3))
Else
'Base64形式のみ対応
Throw New Exception("未対応のエンコード形式です。")
End If
's(1)をEncoding名として、デコードする
Return System.Text.Encoding.GetEncoding(s(1)).GetStri...
End Function
}}
#code(csharp){{
/// <summary>
/// メールのサブジェクトをデコードする
/// </summary>
/// <param name="subject">デコードするメールサブジェクト<...
/// <returns>デコードされた文字列</returns>
private static string DecodeMailSubject(string subject)
{
//要素を分解する
string[] s = subject.Split('?');
byte[] b;
if (s[2] == "B")
{
//Base64形式の時
b = System.Convert.FromBase64String(s[3]);
}
else
{
//Base64形式のみ対応
throw new Exception("未対応のエンコード形式です。");
}
//s[1]をEncoding名として、デコードする
return System.Text.Encoding.GetEncoding(s[1]).GetString(...
}
}}
-[[メールのサブジェクトのデコード>http://www.sky-j.com/vi...
***フォームが閉じられる時その原因を知るには? [#b29109d6]
#column(注意){{
この記事の最新版は「[[フォームが閉じられる時その原因を知...
}}
''質問:''
VB6のQueryUnloadイベントにおけるUnloadModeのように、フォ...
''答え:''
これにはいくつかの方法があるようです。
一つ目は、フォームのWndProcメソッドをオーバーライドし、送...
#code(vbnet){{
Protected Overrides Sub WndProc(ByRef m As System.Windows...
Const WM_CLOSE As Integer = &H10
Const WM_ENDSESSION As Integer = &H16
Const WM_SYSCOMMAND As Integer = &H112
Const SC_CLOSE As Integer = &HF060
Select Case m.Msg
Case WM_ENDSESSION
'OSのシャットダウンなどで閉じられようとしている
Console.WriteLine("WM_ENDSESSION")
Case WM_SYSCOMMAND
If m.WParam.ToInt32() = SC_CLOSE Then
'Xボタン、コントロールメニューの「閉じる...
'コントロールボックスのダブルクリック、
'Atl+F4などにより閉じられようとしている
Console.WriteLine("SC_CLOSE")
End If
Case WM_CLOSE
'Application.Exit以外などで閉じられようとして...
Console.WriteLine("WM_CLOSE")
End Select
MyBase.WndProc(m)
End Sub
}}
#code(csharp){{
protected override void WndProc(ref Message m)
{
const int WM_CLOSE = 0x0010;
const int WM_ENDSESSION = 0x16;
const int WM_SYSCOMMAND = 0x112;
const int SC_CLOSE = 0xF060;
switch (m.Msg)
{
case WM_ENDSESSION:
//OSのシャットダウンなどで閉じられようとしている
Console.WriteLine("WM_ENDSESSION");
break;
case WM_SYSCOMMAND:
if (m.WParam.ToInt32() == SC_CLOSE)
//Xボタン、コントロールメニューの「閉じる」、
//コントロールボックスのダブルクリック、
//Atl+F4などにより閉じられようとしている
Console.WriteLine("SC_CLOSE");
break;
case WM_CLOSE:
//Application.Exit以外などで閉じられようとしている
Console.WriteLine("WM_CLOSE");
break;
}
base.WndProc (ref m);
}
}}
二番目の方法は、StackFrameを使うというちょっと変わった方...
-[[GotDotNet Message Boards - Form.Closing...>http://www....
ここで紹介されているYeahIGotDotNetさん、MikeWill34さんの...
-[[The Code Project - Find out what's closing your applic...
#code(vbnet){{
Private Sub Form1_Closing(ByVal sender As Object, _
ByVal e As System.ComponentModel.CancelEventArgs) _
Handles MyBase.Closing
Dim stack As New System.Diagnostics.StackTrace(True)
Dim frame7 As System.Diagnostics.StackFrame = stack.G...
Select Case frame7.GetMethod().Name
Case "DispatchMessageW"
Console.WriteLine("タスクマネージャーによる")
Case "SendMessage"
Console.WriteLine("コードによる")
Case "CallWindowProc"
If stack.FrameCount > 14 Then
Dim frame14 As System.Diagnostics.StackFr...
stack.GetFrame(14)
If frame14.GetMethod().Name = "WmSysComma...
Console.WriteLine( _
"Xボタンまたはコントロールメニュ...
Else
If frame14.GetMethod().Name = "WndPro...
Console.WriteLine("OSのシャットダ...
End If
End If
End If
Case "DefMDIChildProc"
Console.WriteLine( _
"MDI子フォームのXボタンまたはコントロール...
Case "DefFrameProc"
Console.WriteLine("MDI親フォームが閉じられた...
Case "ShowDialog"
Console.WriteLine("モーダルダイアログが閉じら...
Case Else
Console.WriteLine("原因不明")
End Select
End Sub
}}
#code(csharp){{
private void Form1_Closing(object sender,
System.ComponentModel.CancelEventArgs e)
{
System.Diagnostics.StackTrace stack =
new System.Diagnostics.StackTrace(true);
System.Diagnostics.StackFrame frame7 = stack.GetFrame(7);
switch (frame7.GetMethod().Name)
{
case "DispatchMessageW":
Console.WriteLine("タスクマネージャーによる");
break;
case "SendMessage":
Console.WriteLine("コードによる");
break;
case "CallWindowProc":
if (stack.FrameCount > 14)
{
System.Diagnostics.StackFrame frame14 =
stack.GetFrame(14);
if (frame14.GetMethod().Name == "WmSysCommand")
Console.WriteLine(
"Xボタンまたはコントロールメニューによる");
else if (frame14.GetMethod().Name == "WndProc")
Console.WriteLine("OSのシャットダウンによる");
}
break;
case "DefMDIChildProc":
Console.WriteLine(
"MDI子フォームのXボタンまたはコントロールメニューによ...
break;
case "DefFrameProc":
Console.WriteLine("MDI親フォームが閉じられたことによる...
break;
case "ShowDialog":
Console.WriteLine("モーダルダイアログが閉じられたこと...
break;
default:
Console.WriteLine("原因不明");
break;
}
}
}}
最後に紹介するのは、hidden windowを使った方法です(一番目...
-[[Visual Studio Magazine - Determine a Form's UnloadMode...
-[[フォームのXボタンの制御>http://www.sky-j.com/viewlist....
**コメント [#u1e2d7df]
#comment
//これより下は編集しないでください
#pageinfo([[:Category/.NET]],2003-07-29 (火) 06:00:00,DOB...
終了行:
#title(.NETプログラミング研究 第13号)
#navi(.NETプログラミング研究)
#contents
*.NETプログラミング研究 第13号 [#jb1098d4]
**.NET Tips [#d0567963]
***フォームの形を変える [#fd7b9ead]
#column(注意){{
この記事の最新版は「[[フォームやコントロールの形を変える>...
}}
フォームの形を四角(矩形)以外の形に変える方法としてここ...
形を変えたいフォームのRegionプロパティに、その形状を示し...
次の例はフォームをドーナッツ型にするコードです。ここでは...
#code(vbnet){{
Private Sub Form1_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
'フォームの大きさを適当に変更
Me.SetBounds(Me.Left, Me.Top, 301, 301, BoundsSpecifi...
'GraphicsPathオブジェクトの作成
Dim myGraphicsPath As System.Drawing.Drawing2D.Graphi...
New System.Drawing.Drawing2D.GraphicsPath()
'丸を描く
myGraphicsPath.AddEllipse(New Rectangle(0, 0, 300, 30...
'真ん中を丸くくりぬく
myGraphicsPath.AddEllipse(New Rectangle(100, 100, 100...
'Regionプロパティの設定
Me.Region = New Region(myGraphicsPath)
End Sub
}}
#code(csharp){{
private void Form1_Load(object sender, System.EventArgs e)
{
//フォームの大きさを適当に変更
this.SetBounds(this.Left, this.Top, 301, 301, BoundsS...
//GraphicsPathオブジェクトの作成
System.Drawing.Drawing2D.GraphicsPath myGraphicsPath =
new System.Drawing.Drawing2D.GraphicsPath();
//丸を描く
myGraphicsPath.AddEllipse(new Rectangle(0, 0, 300, 30...
//真ん中を丸くくりぬく
myGraphicsPath.AddEllipse(new Rectangle(100, 100, 100...
//Regionプロパティの設定
this.Region = new Region(myGraphicsPath);
}
}}
次の例はフォームの形を文字(この例では"DOBON!")にするも...
#code(vbnet){{
Private Sub Form1_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
Dim myGraphicsPath As New System.Drawing.Drawing2D.Gr...
'文字のサイズは50
myGraphicsPath.AddString("DOBON!", New FontFamily("Ar...
FontStyle.Bold, 50, New Point(0, 0), StringFormat...
Me.Region = New Region(myGraphicsPath)
End Sub
}}
#code(csharp){{
private void Form1_Load(object sender, System.EventArgs e)
{
System.Drawing.Drawing2D.GraphicsPath myGraphicsPath =
new System.Drawing.Drawing2D.GraphicsPath();
//文字のサイズは50
myGraphicsPath.AddString("DOBON!", new FontFamily("Ar...
(int) FontStyle.Bold, 50, new Point(0, 0),
StringFormat.GenericDefault);
this.Region = new Region(myGraphicsPath);
}
}}
そのほかの形に変える例につきましては、下のURLをご覧くださ...
-[[フォームやコントロールの形を変える>https://dobon.net/v...
次にForm.TransparencyKeyプロパティを使ってフォームの形を...
Windows2000以降のOSであれば、Form.TransparencyKeyプロパテ...
しかし残念なことに実際にはそう簡単にはいきません。私の試...
いろいろ試してみたところ、少なくとも私の環境では次のよう...
画像をフォームに描画するには、BackgroundImageプロパティを...
次の例ではフォームの形を"form.bmp"という画像ファイルに保...
#code(vbnet){{
Dim _formBitmap As Bitmap
Private Sub Form1_Load(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
'TransparencyKeyプロパティを指定する前に画像を読み込む
'フォームの形の画像を読み込む
_formBitmap = New Bitmap("form.bmp")
'画像の透明色を指定する
_formBitmap.MakeTransparent(Color.White)
'フォームの境界線をなくす
Me.FormBorderStyle = FormBorderStyle.None
'大きさを適当に変更
Me.Size = New Size(100, 100)
'透明を指定する
Me.TransparencyKey = Color.White
'フォームの背景色を透明色にする
Me.BackColor = Color.White
End Sub
Private Sub Form1_Paint(ByVal sender As Object, _
ByVal e As System.Windows.Forms.PaintEventArgs) _
Handles MyBase.Paint
'フォームの形の画像を描画する
e.Graphics.DrawImage(_formBitmap, 0, 0)
End Sub
}}
#code(csharp){{
Bitmap _formBitmap;
private void Form1_Load(object sender, System.EventArgs e)
{
//TransparencyKeyプロパティを指定する前に画像を読み込む
//フォームの形の画像を読み込む
_formBitmap = new Bitmap(@"form.bmp");
//画像の透明色を指定する
_formBitmap.MakeTransparent(Color.White);
//フォームの境界線をなくす
this.FormBorderStyle = FormBorderStyle.None;
//大きさを適当に変更
this.Size = new Size(100, 100);
//透明を指定する
this.TransparencyKey = Color.White;
//フォームの背景色を透明色にする
this.BackColor = Color.White;
}
private void Form1_Paint(object sender,
System.Windows.Forms.PaintEventArgs e)
{
//フォームの形の画像を描画する
e.Graphics.DrawImage(_formBitmap, 0, 0);
}
}}
**.NET質問箱 [#h0617ae4]
***メールのサブジェクトをデコードするには? [#y1303da9]
#column(注意){{
この記事の最新版は「[[メールのサブジェクトをデコードする>...
}}
''質問:''
受信したメールのSubjectをデコードしたいのですが、どのよう...
例「=?ISO-2022-JP?B?GyRCJCIkMSReJDckRiQqJGEkRyRIJCYhKhsoS...
''答え:''
ちゃんとしたものを作るにはRFC2047の知識が必要になると思い...
-[[RFC2047>http://www.ietf.org/rfc/rfc2047.txt]]
#code(vbnet){{
'/ <summary>
'/ メールのサブジェクトをデコードする
'/ </summary>
'/ <param name="subject">デコードするメールサブジェクト</...
'/ <returns>デコードされた文字列</returns>
Private Shared Function DecodeMailSubject(ByVal subject A...
'要素を分解する
Dim s As String() = subject.Split("?"c)
Dim b() As Byte
If s(2) = "B" Then
'Base64形式の時
b = System.Convert.FromBase64String(s(3))
Else
'Base64形式のみ対応
Throw New Exception("未対応のエンコード形式です。")
End If
's(1)をEncoding名として、デコードする
Return System.Text.Encoding.GetEncoding(s(1)).GetStri...
End Function
}}
#code(csharp){{
/// <summary>
/// メールのサブジェクトをデコードする
/// </summary>
/// <param name="subject">デコードするメールサブジェクト<...
/// <returns>デコードされた文字列</returns>
private static string DecodeMailSubject(string subject)
{
//要素を分解する
string[] s = subject.Split('?');
byte[] b;
if (s[2] == "B")
{
//Base64形式の時
b = System.Convert.FromBase64String(s[3]);
}
else
{
//Base64形式のみ対応
throw new Exception("未対応のエンコード形式です。");
}
//s[1]をEncoding名として、デコードする
return System.Text.Encoding.GetEncoding(s[1]).GetString(...
}
}}
-[[メールのサブジェクトのデコード>http://www.sky-j.com/vi...
***フォームが閉じられる時その原因を知るには? [#b29109d6]
#column(注意){{
この記事の最新版は「[[フォームが閉じられる時その原因を知...
}}
''質問:''
VB6のQueryUnloadイベントにおけるUnloadModeのように、フォ...
''答え:''
これにはいくつかの方法があるようです。
一つ目は、フォームのWndProcメソッドをオーバーライドし、送...
#code(vbnet){{
Protected Overrides Sub WndProc(ByRef m As System.Windows...
Const WM_CLOSE As Integer = &H10
Const WM_ENDSESSION As Integer = &H16
Const WM_SYSCOMMAND As Integer = &H112
Const SC_CLOSE As Integer = &HF060
Select Case m.Msg
Case WM_ENDSESSION
'OSのシャットダウンなどで閉じられようとしている
Console.WriteLine("WM_ENDSESSION")
Case WM_SYSCOMMAND
If m.WParam.ToInt32() = SC_CLOSE Then
'Xボタン、コントロールメニューの「閉じる...
'コントロールボックスのダブルクリック、
'Atl+F4などにより閉じられようとしている
Console.WriteLine("SC_CLOSE")
End If
Case WM_CLOSE
'Application.Exit以外などで閉じられようとして...
Console.WriteLine("WM_CLOSE")
End Select
MyBase.WndProc(m)
End Sub
}}
#code(csharp){{
protected override void WndProc(ref Message m)
{
const int WM_CLOSE = 0x0010;
const int WM_ENDSESSION = 0x16;
const int WM_SYSCOMMAND = 0x112;
const int SC_CLOSE = 0xF060;
switch (m.Msg)
{
case WM_ENDSESSION:
//OSのシャットダウンなどで閉じられようとしている
Console.WriteLine("WM_ENDSESSION");
break;
case WM_SYSCOMMAND:
if (m.WParam.ToInt32() == SC_CLOSE)
//Xボタン、コントロールメニューの「閉じる」、
//コントロールボックスのダブルクリック、
//Atl+F4などにより閉じられようとしている
Console.WriteLine("SC_CLOSE");
break;
case WM_CLOSE:
//Application.Exit以外などで閉じられようとしている
Console.WriteLine("WM_CLOSE");
break;
}
base.WndProc (ref m);
}
}}
二番目の方法は、StackFrameを使うというちょっと変わった方...
-[[GotDotNet Message Boards - Form.Closing...>http://www....
ここで紹介されているYeahIGotDotNetさん、MikeWill34さんの...
-[[The Code Project - Find out what's closing your applic...
#code(vbnet){{
Private Sub Form1_Closing(ByVal sender As Object, _
ByVal e As System.ComponentModel.CancelEventArgs) _
Handles MyBase.Closing
Dim stack As New System.Diagnostics.StackTrace(True)
Dim frame7 As System.Diagnostics.StackFrame = stack.G...
Select Case frame7.GetMethod().Name
Case "DispatchMessageW"
Console.WriteLine("タスクマネージャーによる")
Case "SendMessage"
Console.WriteLine("コードによる")
Case "CallWindowProc"
If stack.FrameCount > 14 Then
Dim frame14 As System.Diagnostics.StackFr...
stack.GetFrame(14)
If frame14.GetMethod().Name = "WmSysComma...
Console.WriteLine( _
"Xボタンまたはコントロールメニュ...
Else
If frame14.GetMethod().Name = "WndPro...
Console.WriteLine("OSのシャットダ...
End If
End If
End If
Case "DefMDIChildProc"
Console.WriteLine( _
"MDI子フォームのXボタンまたはコントロール...
Case "DefFrameProc"
Console.WriteLine("MDI親フォームが閉じられた...
Case "ShowDialog"
Console.WriteLine("モーダルダイアログが閉じら...
Case Else
Console.WriteLine("原因不明")
End Select
End Sub
}}
#code(csharp){{
private void Form1_Closing(object sender,
System.ComponentModel.CancelEventArgs e)
{
System.Diagnostics.StackTrace stack =
new System.Diagnostics.StackTrace(true);
System.Diagnostics.StackFrame frame7 = stack.GetFrame(7);
switch (frame7.GetMethod().Name)
{
case "DispatchMessageW":
Console.WriteLine("タスクマネージャーによる");
break;
case "SendMessage":
Console.WriteLine("コードによる");
break;
case "CallWindowProc":
if (stack.FrameCount > 14)
{
System.Diagnostics.StackFrame frame14 =
stack.GetFrame(14);
if (frame14.GetMethod().Name == "WmSysCommand")
Console.WriteLine(
"Xボタンまたはコントロールメニューによる");
else if (frame14.GetMethod().Name == "WndProc")
Console.WriteLine("OSのシャットダウンによる");
}
break;
case "DefMDIChildProc":
Console.WriteLine(
"MDI子フォームのXボタンまたはコントロールメニューによ...
break;
case "DefFrameProc":
Console.WriteLine("MDI親フォームが閉じられたことによる...
break;
case "ShowDialog":
Console.WriteLine("モーダルダイアログが閉じられたこと...
break;
default:
Console.WriteLine("原因不明");
break;
}
}
}}
最後に紹介するのは、hidden windowを使った方法です(一番目...
-[[Visual Studio Magazine - Determine a Form's UnloadMode...
-[[フォームのXボタンの制御>http://www.sky-j.com/viewlist....
**コメント [#u1e2d7df]
#comment
//これより下は編集しないでください
#pageinfo([[:Category/.NET]],2003-07-29 (火) 06:00:00,DOB...
ページ名:
▲
▼
[
トップ
] [
新規
|
子ページ作成
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]