DoboWiki
Top
> .NETプログラミング研究/18 をテンプレートにして作成
.NETプログラミング研究/18 をテンプレートにして作成
開始行:
#title(.NETプログラミング研究 第18号)
#navi(.NETプログラミング研究)
#contents
*.NETプログラミング研究 第18号 [#a310e0df]
**.NET質問箱 [#t6390304]
***公開鍵暗号による暗号化 [#re786320]
#column(注意){{
この記事の最新版は「[[公開鍵暗号方法で暗号化する>https://...
}}
前回は「秘密鍵暗号方式による暗号化」について説明しました...
公開鍵暗号とは、公開鍵と秘密鍵(個人鍵)の2つの鍵を使って...
「暗号化専用の鍵(公開鍵)と解読専用の鍵(個人鍵)を使っ...
-[[アスキーデジタル用語辞典>http://yougo.ascii24.com/]]
.NETでは公開キー暗号化アルゴリズムを実装するクラスとして...
-[[通信用語の基礎知識 - DSA>http://www.wdic.org/?word=...
-[[通信用語の基礎知識 - RSA>http://www.wdic.org/?word=RSA]]
次に示すサンプルは、公開鍵暗号により文字列を暗号化、復号...
暗号化にはRSACryptoServiceProvider.Encryptメソッドを使用...
-[[RSACryptoServiceProvider.Encrypt メソッド>http://www.m...
例えばDirect Encryption(高度暗号化パックがインストールさ...
下のコードでは暗号化されるデータの最大長のチェックは全く...
なお下の例の「RSACryptoServiceProviderオブジェクトの作成...
-[[マイクロソフト サポート技術情報 - 322371>http://suppor...
#code(csharp){{
/// <summary>
/// 公開鍵と秘密鍵を作成して返す
/// </summary>
/// <param name="publicKey">作成された公開鍵(XML形式)</pa...
/// <param name="privateKey">作成された秘密鍵(XML形式)</p...
public static void CreateKeys(out string publicKey, out s...
{
//RSACryptoServiceProviderオブジェクトの作成
//(Web Service,ASP Page,COM+の時は次のように
//UseMachineKeyStoreを指定する)
System.Security.Cryptography.CspParameters CSPParam =
new System.Security.Cryptography.CspParameters();
CSPParam.Flags =
System.Security.Cryptography.CspProviderFlags.Use...
System.Security.Cryptography.RSACryptoServiceProvider...
new System.Security.Cryptography.RSACryptoService...
//公開鍵をXML形式で取得
publicKey = rsa.ToXmlString(false);
//秘密鍵をXML形式で取得
privateKey = rsa.ToXmlString(true);
}
/// <summary>
/// 公開鍵を使って文字列を暗号化する
/// </summary>
/// <param name="str">暗号化する文字列</param>
/// <param name="publicKey">暗号化に使用する公開鍵(XML形...
/// <returns>暗号化された文字列</returns>
public static string Encrypt(string str, string publicKey)
{
//RSACryptoServiceProviderオブジェクトの作成
System.Security.Cryptography.CspParameters CSPParam =
new System.Security.Cryptography.CspParameters();
CSPParam.Flags =
System.Security.Cryptography.CspProviderFlags.Use...
System.Security.Cryptography.RSACryptoServiceProvider...
new System.Security.Cryptography.RSACryptoService...
//公開鍵を指定
rsa.FromXmlString(publicKey);
//暗号化する文字列をバイト配列に
byte[] data = System.Text.Encoding.UTF8.GetBytes(str);
//暗号化する
//(XP以降の場合のみ2項目にTrueを指定し、OAEPパディン...
byte[] encryptedData = rsa.Encrypt(data, false);
//Base64で結果を文字列に変換
return System.Convert.ToBase64String(encryptedData);
}
/// <summary>
/// 秘密鍵を使って文字列を復号化する
/// </summary>
/// <param name="str">Encryptメソッドにより暗号化された文...
/// <param name="privateKey">復号化に必要な秘密鍵(XML形式...
/// <returns>復号化された文字列</returns>
public static string Decrypt(string str, string privateKey)
{
//RSACryptoServiceProviderオブジェクトの作成
System.Security.Cryptography.CspParameters CSPParam =
new System.Security.Cryptography.CspParameters();
CSPParam.Flags =
System.Security.Cryptography.CspProviderFlags.Use...
System.Security.Cryptography.RSACryptoServiceProvider...
new System.Security.Cryptography.RSACryptoService...
//秘密鍵を指定
rsa.FromXmlString(privateKey);
//復号化する文字列をバイト配列に
byte[] data = System.Convert.FromBase64String(str);
//復号化する
byte[] decryptedData = rsa.Decrypt(data, false);
//結果を文字列に変換
return System.Text.Encoding.UTF8.GetString(decryptedD...
}
}}
#code(vbnet){{
'C#のコードを'C# to VB.NET Translator'で変換し、修正した...
'http://www.aspalliance.com/aldotnet/examples/translate.a...
'
'/ <summary>
'/ 公開鍵と秘密鍵を作成して返す
'/ </summary>
'/ <param name="publicKey">作成された公開鍵(XML形式)</par...
'/ <param name="privateKey">作成された秘密鍵(XML形式)</pa...
Public Shared Sub CreateKeys(ByRef publicKey As String, _
ByRef privateKey As String)
'RSACryptoServiceProviderオブジェクトの作成
'(Web Service,ASP Page,COM+の時は次のように
'UseMachineKeyStoreを指定する)
Dim CSPParam As New System.Security.Cryptography.CspP...
CSPParam.Flags = _
System.Security.Cryptography.CspProviderFlags.Use...
Dim rsa As New _
System.Security.Cryptography.RSACryptoServiceProv...
'公開鍵をXML形式で取得
publicKey = rsa.ToXmlString(False)
'秘密鍵をXML形式で取得
privateKey = rsa.ToXmlString(True)
End Sub
'/ <summary>
'/ 公開鍵を使って文字列を暗号化する
'/ </summary>
'/ <param name="str">暗号化する文字列</param>
'/ <param name="publicKey">暗号化に使用する公開鍵(XML形式...
'/ <returns>暗号化された文字列</returns>
Public Shared Function Encrypt(ByVal str As String, _
ByVal publicKey As String) As...
'RSACryptoServiceProviderオブジェクトの作成
Dim CSPParam As New System.Security.Cryptography.CspP...
CSPParam.Flags = _
System.Security.Cryptography.CspProviderFlags.Use...
Dim rsa As New _
System.Security.Cryptography.RSACryptoServiceProv...
'公開鍵を指定
rsa.FromXmlString(publicKey)
'暗号化する文字列をバイト配列に
Dim data As Byte() = System.Text.Encoding.UTF8.GetByt...
'暗号化する
'(XP以降の場合のみ2項目にTrueを指定し、OAEPパディン...
Dim encryptedData As Byte() = rsa.Encrypt(data, False)
'Base64で結果を文字列に変換
Return System.Convert.ToBase64String(encryptedData)
End Function
'/ <summary>
'/ 秘密鍵を使って文字列を復号化する
'/ </summary>
'/ <param name="str">Encryptメソッドにより暗号化された文...
'/ <param name="privateKey">復号化に必要な秘密鍵(XML形式)...
'/ <returns>復号化された文字列</returns>
Public Shared Function Decrypt(ByVal str As String, _
ByVal privateKey As String) A...
'RSACryptoServiceProviderオブジェクトの作成
Dim CSPParam As New System.Security.Cryptography.CspP...
CSPParam.Flags = _
System.Security.Cryptography.CspProviderFlags.Use...
Dim rsa As New _
System.Security.Cryptography.RSACryptoServiceProv...
'秘密鍵を指定
rsa.FromXmlString(privateKey)
'復号化する文字列をバイト配列に
Dim data As Byte() = System.Convert.FromBase64String(...
'復号化する
Dim decryptedData As Byte() = rsa.Decrypt(data, False)
'結果を文字列に変換
Return System.Text.Encoding.UTF8.GetString(decryptedD...
End Function
}}
-[[公開鍵暗号による暗号化>https://dobon.net/vb/dotnet/str...
**.NET質問箱 [#af039df6]
***フォームのイメージを印刷するには? [#o885893c]
#column(注意){{
この記事の最新版は「[[フォームのイメージを印刷する>https:...
}}
''質問:''
Visual Basic 6.0ではPrintFormというメソッドがあり、これに...
''答え:''
VB6のPrintFormメソッドに代わるものは.NETにはありません。...
「Visual Basic 6.0 では、フォームのイメージをプリンタに送...
とあります。
-[[Visual Basic .NET における印刷の変更点>http://www.micr...
それではサードパーティ製のスクリーンキャプチャ機能を使う...
ただし、VB6のPrintFormメソッドがフォームの一部が画面に表...
-[[Code: Printing a Windows Form (Visual Basic)>http://ms...
-[[Code: Displaying Print Preview for a Windows Form (Vis...
-[[MSDN:コード : Windows フォームを印刷する (Visual Basic...
-[[MSDN:コード : Windows フォームの印刷プレビューを表示す...
以下にこのサンプルコードを書き直した例を示します。使い方...
PrintForm(this);
VB.NETでは
PrintForm(Me)
のようにしてください。
#code(csharp){{
/// <summary>
/// フォームのイメージを印刷する
/// </summary>
/// <param name="frm">イメージを印刷するフォーム</param>
public void PrintForm(Form frm)
{
//フォームのイメージを取得する
CaptureScreen(frm);
//フォームのイメージを印刷する
System.Drawing.Printing.PrintDocument PrintDocument1...
new System.Drawing.Printing.PrintDocument();
PrintDocument1.PrintPage +=
new System.Drawing.Printing.PrintPageEventHandl...
PrintDocument1_PrintPage);
PrintDocument1.Print();
}
[System.Runtime.InteropServices.DllImport("gdi32.dll")]
private static extern bool BitBlt(IntPtr hdcDest,
int nXDest, int nYDest, int nWidth, int nHeight,
IntPtr hdcSrc, int nXSrc, int nYSrc, int dwRop);
//フォームのイメージを保存する変数
private Bitmap memoryImage;
//フォームのイメージを取得する
private void CaptureScreen(Form frm)
{
Graphics mygraphics = frm.CreateGraphics();
Size s = frm.Size;
memoryImage = new Bitmap(s.Width, s.Height, mygraphi...
Graphics memoryGraphics = Graphics.FromImage(memoryI...
IntPtr dc1 = mygraphics.GetHdc();
IntPtr dc2 = memoryGraphics.GetHdc();
BitBlt(dc2, 0, 0, frm.ClientRectangle.Width,
frm.ClientRectangle.Height, dc1, 0, 0, 13369376);
mygraphics.ReleaseHdc(dc1);
memoryGraphics.ReleaseHdc(dc2);
}
//PrintDocument1のPrintPageイベントハンドラ
private void PrintDocument1_PrintPage(object sender,
System.Drawing.Printing.PrintPageEventArgs e)
{
e.Graphics.DrawImage(memoryImage, 0, 0);
}
}}
#code(vbnet){{
'/ <summary>
'/ フォームのイメージを印刷する
'/ </summary>
'/ <param name="frm">イメージを印刷するフォーム</param>
Public Sub PrintForm(ByVal frm As Form)
'フォームのイメージを取得する
CaptureScreen(frm)
'フォームのイメージを印刷する
Dim PrintDocument1 As New System.Drawing.Printing.Pri...
AddHandler PrintDocument1.PrintPage, _
AddressOf PrintDocument1_PrintPage
PrintDocument1.Print()
End Sub
<System.Runtime.InteropServices.DllImport("gdi32.dll")> _
Private Shared Function BitBlt(ByVal hdcDest As IntPtr, _
ByVal nXDest As Integer, ByVal nYDest As Integer, _
ByVal nWidth As Integer, ByVal nHeight As Integer, _
ByVal hdcSrc As IntPtr, _
ByVal nXSrc As Integer, ByVal nYSrc As Integer, _
ByVal dwRop As Integer) As Boolean
End Function
'フォームのイメージを保存する変数
Private memoryImage As Bitmap
'フォームのイメージを取得する
Private Sub CaptureScreen(ByVal frm As Form)
Dim mygraphics As Graphics = frm.CreateGraphics()
Dim s As Size = frm.Size
memoryImage = New Bitmap(s.Width, s.Height, mygraphics)
Dim memoryGraphics As Graphics = Graphics.FromImage(m...
Dim dc1 As IntPtr = mygraphics.GetHdc()
Dim dc2 As IntPtr = memoryGraphics.GetHdc()
BitBlt(dc2, 0, 0, _
frm.ClientRectangle.Width, frm.ClientRectangle.He...
dc1, 0, 0, 13369376)
mygraphics.ReleaseHdc(dc1)
memoryGraphics.ReleaseHdc(dc2)
End Sub
'PrintDocument1のPrintPageイベントハンドラ
Private Sub PrintDocument1_PrintPage(ByVal sender As Obje...
ByVal e As System.Drawing.Printing.PrintPageEvent...
e.Graphics.DrawImage(memoryImage, 0, 0)
End Sub
}}
***GotFocusとLostFocusイベントはどこにいったか? [#j41573...
#column(注意){{
この記事の最新版は「[[GotFocusとLostFocusイベントはどこに...
}}
''質問:''
VB6ではコントロールがフォーカスを受け取った時にGotFocusイ...
''答え:''
.NETでもVB6と同様にGotFocusイベント及びLostFocusイベント...
GotFocusイベントとLostFocusイベントについて、ヘルプには次...
「GotFocus イベントおよび LostFocus イベントは、WM_KILLFO...
このことから推測すると、GotFocus及びLostFocusイベントの代...
-[[GotFocus イベント>http://www.microsoft.com/japan/msdn/...
-[[LostFocus イベント>http://www.microsoft.com/japan/msdn...
また、ヘルプの「Visual Basic .NET における TextBox コント...
-[[Visual Basic .NET における TextBox コントロールの変更...
以下にLostFocusイベントを使ったコードを一応書いておきます。
#code(csharp){{
private void Form1_Load(object sender, System.EventArgs e)
{
//TextBox1のLostFocusイベントハンドラを追加する
TextBox1.LostFocus += new EventHandler(TextBox1_Lost...
}
//LostFocusイベントハンドラ
private void TextBox1_LostFocus(object sender, EventArgs e)
{
Console.WriteLine("LostFocusイベントが発生しました。...
}
}}
#code(vbnet){{
Private Sub Form1_Load(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
'TextBox1のLostFocusイベントハンドラを追加する
AddHandler TextBox1.LostFocus, AddressOf TextBox1_Los...
End Sub
'LostFocusイベントハンドラ
Private Sub TextBox1_LostFocus(ByVal sender As Object, _
ByVal e As EventArgs)
Console.WriteLine("LostFocusイベントが発生しました。")
End Sub
}}
-[[どぼん!のVB道掲示板 - focusイベントについて>http://ww...
**コメント [#a5639586]
#comment
//これより下は編集しないでください
#pageinfo([[:Category/.NET]],2003-10-07 (火) 06:00:00,DOB...
終了行:
#title(.NETプログラミング研究 第18号)
#navi(.NETプログラミング研究)
#contents
*.NETプログラミング研究 第18号 [#a310e0df]
**.NET質問箱 [#t6390304]
***公開鍵暗号による暗号化 [#re786320]
#column(注意){{
この記事の最新版は「[[公開鍵暗号方法で暗号化する>https://...
}}
前回は「秘密鍵暗号方式による暗号化」について説明しました...
公開鍵暗号とは、公開鍵と秘密鍵(個人鍵)の2つの鍵を使って...
「暗号化専用の鍵(公開鍵)と解読専用の鍵(個人鍵)を使っ...
-[[アスキーデジタル用語辞典>http://yougo.ascii24.com/]]
.NETでは公開キー暗号化アルゴリズムを実装するクラスとして...
-[[通信用語の基礎知識 - DSA>http://www.wdic.org/?word=...
-[[通信用語の基礎知識 - RSA>http://www.wdic.org/?word=RSA]]
次に示すサンプルは、公開鍵暗号により文字列を暗号化、復号...
暗号化にはRSACryptoServiceProvider.Encryptメソッドを使用...
-[[RSACryptoServiceProvider.Encrypt メソッド>http://www.m...
例えばDirect Encryption(高度暗号化パックがインストールさ...
下のコードでは暗号化されるデータの最大長のチェックは全く...
なお下の例の「RSACryptoServiceProviderオブジェクトの作成...
-[[マイクロソフト サポート技術情報 - 322371>http://suppor...
#code(csharp){{
/// <summary>
/// 公開鍵と秘密鍵を作成して返す
/// </summary>
/// <param name="publicKey">作成された公開鍵(XML形式)</pa...
/// <param name="privateKey">作成された秘密鍵(XML形式)</p...
public static void CreateKeys(out string publicKey, out s...
{
//RSACryptoServiceProviderオブジェクトの作成
//(Web Service,ASP Page,COM+の時は次のように
//UseMachineKeyStoreを指定する)
System.Security.Cryptography.CspParameters CSPParam =
new System.Security.Cryptography.CspParameters();
CSPParam.Flags =
System.Security.Cryptography.CspProviderFlags.Use...
System.Security.Cryptography.RSACryptoServiceProvider...
new System.Security.Cryptography.RSACryptoService...
//公開鍵をXML形式で取得
publicKey = rsa.ToXmlString(false);
//秘密鍵をXML形式で取得
privateKey = rsa.ToXmlString(true);
}
/// <summary>
/// 公開鍵を使って文字列を暗号化する
/// </summary>
/// <param name="str">暗号化する文字列</param>
/// <param name="publicKey">暗号化に使用する公開鍵(XML形...
/// <returns>暗号化された文字列</returns>
public static string Encrypt(string str, string publicKey)
{
//RSACryptoServiceProviderオブジェクトの作成
System.Security.Cryptography.CspParameters CSPParam =
new System.Security.Cryptography.CspParameters();
CSPParam.Flags =
System.Security.Cryptography.CspProviderFlags.Use...
System.Security.Cryptography.RSACryptoServiceProvider...
new System.Security.Cryptography.RSACryptoService...
//公開鍵を指定
rsa.FromXmlString(publicKey);
//暗号化する文字列をバイト配列に
byte[] data = System.Text.Encoding.UTF8.GetBytes(str);
//暗号化する
//(XP以降の場合のみ2項目にTrueを指定し、OAEPパディン...
byte[] encryptedData = rsa.Encrypt(data, false);
//Base64で結果を文字列に変換
return System.Convert.ToBase64String(encryptedData);
}
/// <summary>
/// 秘密鍵を使って文字列を復号化する
/// </summary>
/// <param name="str">Encryptメソッドにより暗号化された文...
/// <param name="privateKey">復号化に必要な秘密鍵(XML形式...
/// <returns>復号化された文字列</returns>
public static string Decrypt(string str, string privateKey)
{
//RSACryptoServiceProviderオブジェクトの作成
System.Security.Cryptography.CspParameters CSPParam =
new System.Security.Cryptography.CspParameters();
CSPParam.Flags =
System.Security.Cryptography.CspProviderFlags.Use...
System.Security.Cryptography.RSACryptoServiceProvider...
new System.Security.Cryptography.RSACryptoService...
//秘密鍵を指定
rsa.FromXmlString(privateKey);
//復号化する文字列をバイト配列に
byte[] data = System.Convert.FromBase64String(str);
//復号化する
byte[] decryptedData = rsa.Decrypt(data, false);
//結果を文字列に変換
return System.Text.Encoding.UTF8.GetString(decryptedD...
}
}}
#code(vbnet){{
'C#のコードを'C# to VB.NET Translator'で変換し、修正した...
'http://www.aspalliance.com/aldotnet/examples/translate.a...
'
'/ <summary>
'/ 公開鍵と秘密鍵を作成して返す
'/ </summary>
'/ <param name="publicKey">作成された公開鍵(XML形式)</par...
'/ <param name="privateKey">作成された秘密鍵(XML形式)</pa...
Public Shared Sub CreateKeys(ByRef publicKey As String, _
ByRef privateKey As String)
'RSACryptoServiceProviderオブジェクトの作成
'(Web Service,ASP Page,COM+の時は次のように
'UseMachineKeyStoreを指定する)
Dim CSPParam As New System.Security.Cryptography.CspP...
CSPParam.Flags = _
System.Security.Cryptography.CspProviderFlags.Use...
Dim rsa As New _
System.Security.Cryptography.RSACryptoServiceProv...
'公開鍵をXML形式で取得
publicKey = rsa.ToXmlString(False)
'秘密鍵をXML形式で取得
privateKey = rsa.ToXmlString(True)
End Sub
'/ <summary>
'/ 公開鍵を使って文字列を暗号化する
'/ </summary>
'/ <param name="str">暗号化する文字列</param>
'/ <param name="publicKey">暗号化に使用する公開鍵(XML形式...
'/ <returns>暗号化された文字列</returns>
Public Shared Function Encrypt(ByVal str As String, _
ByVal publicKey As String) As...
'RSACryptoServiceProviderオブジェクトの作成
Dim CSPParam As New System.Security.Cryptography.CspP...
CSPParam.Flags = _
System.Security.Cryptography.CspProviderFlags.Use...
Dim rsa As New _
System.Security.Cryptography.RSACryptoServiceProv...
'公開鍵を指定
rsa.FromXmlString(publicKey)
'暗号化する文字列をバイト配列に
Dim data As Byte() = System.Text.Encoding.UTF8.GetByt...
'暗号化する
'(XP以降の場合のみ2項目にTrueを指定し、OAEPパディン...
Dim encryptedData As Byte() = rsa.Encrypt(data, False)
'Base64で結果を文字列に変換
Return System.Convert.ToBase64String(encryptedData)
End Function
'/ <summary>
'/ 秘密鍵を使って文字列を復号化する
'/ </summary>
'/ <param name="str">Encryptメソッドにより暗号化された文...
'/ <param name="privateKey">復号化に必要な秘密鍵(XML形式)...
'/ <returns>復号化された文字列</returns>
Public Shared Function Decrypt(ByVal str As String, _
ByVal privateKey As String) A...
'RSACryptoServiceProviderオブジェクトの作成
Dim CSPParam As New System.Security.Cryptography.CspP...
CSPParam.Flags = _
System.Security.Cryptography.CspProviderFlags.Use...
Dim rsa As New _
System.Security.Cryptography.RSACryptoServiceProv...
'秘密鍵を指定
rsa.FromXmlString(privateKey)
'復号化する文字列をバイト配列に
Dim data As Byte() = System.Convert.FromBase64String(...
'復号化する
Dim decryptedData As Byte() = rsa.Decrypt(data, False)
'結果を文字列に変換
Return System.Text.Encoding.UTF8.GetString(decryptedD...
End Function
}}
-[[公開鍵暗号による暗号化>https://dobon.net/vb/dotnet/str...
**.NET質問箱 [#af039df6]
***フォームのイメージを印刷するには? [#o885893c]
#column(注意){{
この記事の最新版は「[[フォームのイメージを印刷する>https:...
}}
''質問:''
Visual Basic 6.0ではPrintFormというメソッドがあり、これに...
''答え:''
VB6のPrintFormメソッドに代わるものは.NETにはありません。...
「Visual Basic 6.0 では、フォームのイメージをプリンタに送...
とあります。
-[[Visual Basic .NET における印刷の変更点>http://www.micr...
それではサードパーティ製のスクリーンキャプチャ機能を使う...
ただし、VB6のPrintFormメソッドがフォームの一部が画面に表...
-[[Code: Printing a Windows Form (Visual Basic)>http://ms...
-[[Code: Displaying Print Preview for a Windows Form (Vis...
-[[MSDN:コード : Windows フォームを印刷する (Visual Basic...
-[[MSDN:コード : Windows フォームの印刷プレビューを表示す...
以下にこのサンプルコードを書き直した例を示します。使い方...
PrintForm(this);
VB.NETでは
PrintForm(Me)
のようにしてください。
#code(csharp){{
/// <summary>
/// フォームのイメージを印刷する
/// </summary>
/// <param name="frm">イメージを印刷するフォーム</param>
public void PrintForm(Form frm)
{
//フォームのイメージを取得する
CaptureScreen(frm);
//フォームのイメージを印刷する
System.Drawing.Printing.PrintDocument PrintDocument1...
new System.Drawing.Printing.PrintDocument();
PrintDocument1.PrintPage +=
new System.Drawing.Printing.PrintPageEventHandl...
PrintDocument1_PrintPage);
PrintDocument1.Print();
}
[System.Runtime.InteropServices.DllImport("gdi32.dll")]
private static extern bool BitBlt(IntPtr hdcDest,
int nXDest, int nYDest, int nWidth, int nHeight,
IntPtr hdcSrc, int nXSrc, int nYSrc, int dwRop);
//フォームのイメージを保存する変数
private Bitmap memoryImage;
//フォームのイメージを取得する
private void CaptureScreen(Form frm)
{
Graphics mygraphics = frm.CreateGraphics();
Size s = frm.Size;
memoryImage = new Bitmap(s.Width, s.Height, mygraphi...
Graphics memoryGraphics = Graphics.FromImage(memoryI...
IntPtr dc1 = mygraphics.GetHdc();
IntPtr dc2 = memoryGraphics.GetHdc();
BitBlt(dc2, 0, 0, frm.ClientRectangle.Width,
frm.ClientRectangle.Height, dc1, 0, 0, 13369376);
mygraphics.ReleaseHdc(dc1);
memoryGraphics.ReleaseHdc(dc2);
}
//PrintDocument1のPrintPageイベントハンドラ
private void PrintDocument1_PrintPage(object sender,
System.Drawing.Printing.PrintPageEventArgs e)
{
e.Graphics.DrawImage(memoryImage, 0, 0);
}
}}
#code(vbnet){{
'/ <summary>
'/ フォームのイメージを印刷する
'/ </summary>
'/ <param name="frm">イメージを印刷するフォーム</param>
Public Sub PrintForm(ByVal frm As Form)
'フォームのイメージを取得する
CaptureScreen(frm)
'フォームのイメージを印刷する
Dim PrintDocument1 As New System.Drawing.Printing.Pri...
AddHandler PrintDocument1.PrintPage, _
AddressOf PrintDocument1_PrintPage
PrintDocument1.Print()
End Sub
<System.Runtime.InteropServices.DllImport("gdi32.dll")> _
Private Shared Function BitBlt(ByVal hdcDest As IntPtr, _
ByVal nXDest As Integer, ByVal nYDest As Integer, _
ByVal nWidth As Integer, ByVal nHeight As Integer, _
ByVal hdcSrc As IntPtr, _
ByVal nXSrc As Integer, ByVal nYSrc As Integer, _
ByVal dwRop As Integer) As Boolean
End Function
'フォームのイメージを保存する変数
Private memoryImage As Bitmap
'フォームのイメージを取得する
Private Sub CaptureScreen(ByVal frm As Form)
Dim mygraphics As Graphics = frm.CreateGraphics()
Dim s As Size = frm.Size
memoryImage = New Bitmap(s.Width, s.Height, mygraphics)
Dim memoryGraphics As Graphics = Graphics.FromImage(m...
Dim dc1 As IntPtr = mygraphics.GetHdc()
Dim dc2 As IntPtr = memoryGraphics.GetHdc()
BitBlt(dc2, 0, 0, _
frm.ClientRectangle.Width, frm.ClientRectangle.He...
dc1, 0, 0, 13369376)
mygraphics.ReleaseHdc(dc1)
memoryGraphics.ReleaseHdc(dc2)
End Sub
'PrintDocument1のPrintPageイベントハンドラ
Private Sub PrintDocument1_PrintPage(ByVal sender As Obje...
ByVal e As System.Drawing.Printing.PrintPageEvent...
e.Graphics.DrawImage(memoryImage, 0, 0)
End Sub
}}
***GotFocusとLostFocusイベントはどこにいったか? [#j41573...
#column(注意){{
この記事の最新版は「[[GotFocusとLostFocusイベントはどこに...
}}
''質問:''
VB6ではコントロールがフォーカスを受け取った時にGotFocusイ...
''答え:''
.NETでもVB6と同様にGotFocusイベント及びLostFocusイベント...
GotFocusイベントとLostFocusイベントについて、ヘルプには次...
「GotFocus イベントおよび LostFocus イベントは、WM_KILLFO...
このことから推測すると、GotFocus及びLostFocusイベントの代...
-[[GotFocus イベント>http://www.microsoft.com/japan/msdn/...
-[[LostFocus イベント>http://www.microsoft.com/japan/msdn...
また、ヘルプの「Visual Basic .NET における TextBox コント...
-[[Visual Basic .NET における TextBox コントロールの変更...
以下にLostFocusイベントを使ったコードを一応書いておきます。
#code(csharp){{
private void Form1_Load(object sender, System.EventArgs e)
{
//TextBox1のLostFocusイベントハンドラを追加する
TextBox1.LostFocus += new EventHandler(TextBox1_Lost...
}
//LostFocusイベントハンドラ
private void TextBox1_LostFocus(object sender, EventArgs e)
{
Console.WriteLine("LostFocusイベントが発生しました。...
}
}}
#code(vbnet){{
Private Sub Form1_Load(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
'TextBox1のLostFocusイベントハンドラを追加する
AddHandler TextBox1.LostFocus, AddressOf TextBox1_Los...
End Sub
'LostFocusイベントハンドラ
Private Sub TextBox1_LostFocus(ByVal sender As Object, _
ByVal e As EventArgs)
Console.WriteLine("LostFocusイベントが発生しました。")
End Sub
}}
-[[どぼん!のVB道掲示板 - focusイベントについて>http://ww...
**コメント [#a5639586]
#comment
//これより下は編集しないでください
#pageinfo([[:Category/.NET]],2003-10-07 (火) 06:00:00,DOB...
ページ名:
▲
▼
[
トップ
] [
新規
|
子ページ作成
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]