┏第10号━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃         .NETプログラミング研究         ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ 〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜メニュー ■.NET質問箱 ・複数の添付ファイルをメール送信するには? ・フォルダを指定して「フォルダの選択ダイアログ」を表示するには? ■.NET Tips ・DataGridの列に値を表示するときの書式を指定する ・DataGridの列のテキストの配置方法を変更する 〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜 ─────────────────────────────── ■.NET質問箱 ─────────────────────────────── ●複数の添付ファイルをメール送信するには? 質問: 「どぼん!のVB道」にある「SMTPでメールを送信する(添付ファイル、 HTMLファイル、優先順位指定など)」 (http://dobon.net/vb/dotnet/internet/smtpmail2.html) ではメールで添付ファイルを送信する方法が説明されていますが、複 数の添付ファイルを送るにはどのようにすればよいのでしょうか? 答え: 送信する添付ファイルごとにMailAttachmentオブジェクトを作成し、 そのすべてをMailMessage.Attachmentsプロパティのコレクションに追 加します。 次の例では、ファイル"test1.jpg"と"test2.jpg"の2つのファイルを添 付ファイルとしたメールを送信しています。 '[VB.NET]・・・・・・・・・・・・・・・・・・・・・・・・・・ Dim mm As New System.Web.Mail.MailMessage() Dim attachment As System.Web.Mail.MailAttachment '送信者 mm.From = "sender " 'あて先 mm.To = "recipient1 " '件名 mm.Subject = "テスト" '本文 mm.Body = "こんにちは。これはテストです。" '本文の文字コードを指定する(ここではJIS) mm.BodyEncoding = System.Text.Encoding.GetEncoding(50220) '添付ファイルの指定 attachment = New System.Web.Mail.MailAttachment("test1.jpg") 'Attachmentsに追加する mm.Attachments.Add(attachment) 'さらに添付ファイルを追加する attachment = New System.Web.Mail.MailAttachment("test2.jpg") mm.Attachments.Add(attachment) 'SMTPサーバーを指定する System.Web.Mail.SmtpMail.SmtpServer = "localhost" '送信する System.Web.Mail.SmtpMail.Send(mm) '・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ //[C#]・・・・・・・・・・・・・・・・・・・・・・・・・・・・ System.Web.Mail.MailMessage mm = new System.Web.Mail.MailMessage(); System.Web.Mail.MailAttachment attachment; //送信者 mm.From = "sender "; //あて先 mm.To = "recipient1 "; //件名 mm.Subject = "テスト"; //本文 mm.Body = "こんにちは。これはテストです。"; //本文の文字コードを指定する(ここではJIS) mm.BodyEncoding = System.Text.Encoding.GetEncoding(50220); //添付ファイルの指定 attachment = new System.Web.Mail.MailAttachment("test1.jpg"); //Attachmentsに追加する mm.Attachments.Add(attachment); //さらに添付ファイルを追加する attachment = new System.Web.Mail.MailAttachment("test2.jpg"); mm.Attachments.Add(attachment); //SMTPサーバーを指定する System.Web.Mail.SmtpMail.SmtpServer = "localhost"; //送信する System.Web.Mail.SmtpMail.Send(mm); //・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ ・複数の添付ファイルを送信するには? http://www.sky-j.com/viewlist.php?arg_forum_id=38&arg_thread_id=539&arg_message_id=539 ─────────────────────────────── ●フォルダを指定して「フォルダの選択ダイアログ」を表示するには? 質問: 「どぼん!のVB道」にある「フォルダの選択ダイアログを表示する」 (http://dobon.net/vb/dotnet/form/folderdialog.html) でのFolderNameEditorの派生クラスを使った方法で、任意のフォルダ をダイアログ表示時に最初に選択されるフォルダに指定することがで きますか? 答え: FolderNameEditorの派生クラスを使った方法では、Desktop、 MyComputer、MyDocumentsなど、FolderNameEditor. FolderBrowserFolder列挙体のメンバしか指定できません。 しかし、.NET Framework 1.1以降では、FolderBrowserDialogクラスを 使うことにより「フォルダの選択ダイアログ」を表示することが出来 るようになり、この方法ではSelectedPathプロパティで任意のフォル ダを指定してダイアログを表示できます。 次の例ではFolderBrowserDialogクラスを使用して、最初にフォルダ "C:\Windows"が選択された状態で「フォルダの選択ダイアログ」が表 示されるようにしています。 '[VB.NET]・・・・・・・・・・・・・・・・・・・・・・・・・・ 'FolderBrowserDialogクラスのインスタンスを作成 Dim fbd As New FolderBrowserDialog '上部に表示する説明テキストを指定する fbd.Description = "フォルダを指定してください。" '最初に選択するフォルダを指定する fbd.SelectedPath = "C:\Windows" 'ダイアログを表示する If fbd.ShowDialog(Me) = DialogResult.OK Then '選択されたフォルダを表示する Console.WriteLine(fbd.SelectedPath) End If '・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ //[C#]・・・・・・・・・・・・・・・・・・・・・・・・・・・・ //FolderBrowserDialogクラスのインスタンスを作成 FolderBrowserDialog fbd = new FolderBrowserDialog(); //上部に表示する説明テキストを指定する fbd.Description = "フォルダを指定してください。"; //最初に選択するフォルダを指定する fbd.SelectedPath = @"C:\Windows"; //ダイアログを表示する if (fbd.ShowDialog(this) == DialogResult.OK) { //選択されたフォルダを表示する Console.WriteLine(fbd.SelectedPath); } //・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ ・フォルダを指定して「フォルダの選択ダイアログ」を表示するには? http://www.sky-j.com/viewlist.php?arg_forum_id=38&arg_thread_id=457&arg_message_id=457 ・フォルダの選択ダイアログを表示する http://dobon.net/vb/dotnet/form/folderdialog.html ─────────────────────────────── ■.NET Tips ─────────────────────────────── ●DataGridの列に値を表示するときの書式を指定する 前回紹介した列スタイルを使い、DataGridの列に値を表示するときの 書式を指定する方法を紹介します。 DataGrid内のある列について、数値データ"100000"を"\100,000"と表 示させたり、日時データ"2003/5/1"を"2003年5月1日"と表示させたい ときには、その列のDataGridTextBoxColumn.Formatプロパティで適当 なテキストの書式を指定してやります。 ここではDataGrid1(DataGridオブジェクト)にDataTable1( DataTableオブジェクト、TableName="DataTable1")が連結されている ものとし、数値データの"Column1"列と日時データの"Column2"列の書 式を変更します。 なお、書式指定文字に関しては、次のページを参考にしてください。 ・型の書式設定 http://www.microsoft.com/japan/msdn/library/ja/cpguide/html/cpconformattingtypes.asp ・日付と時刻の書式指定文字列 http://www.microsoft.com/japan/msdn/library/ja/cpguide/html/cpcondatetimeformatstrings.asp ・数値書式指定文字列 http://www.microsoft.com/japan/msdn/library/ja/cpguide/html/cpconnumericformatstrings.asp '[VB.NET]・・・・・・・・・・・・・・・・・・・・・・・・・・ 'DataGridTableStyleの取得 Dim ts As DataGridTableStyle ts = DataGrid1.TableStyles("DataTable1") '"Column1"のDataGridTextBoxColumnを取得 '"Column1"は数値データ Dim cs1 As DataGridTextBoxColumn cs1 = CType(ts.GridColumnStyles("Column1"), DataGridTextBoxColumn) '値の書式を地域通貨として指定する cs1.Format = "c" '"Column2"のDataGridTextBoxColumnを取得 '"Column2"は日時データ Dim cs2 As DataGridTextBoxColumn cs2 = CType(ts.GridColumnStyles("Column2"), DataGridTextBoxColumn) '値の書式を長い日付として指定する cs2.Format = "D" '・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ //[C#]・・・・・・・・・・・・・・・・・・・・・・・・・・・・ //DataGridTableStyleの取得 DataGridTableStyle ts; ts = DataGrid1.TableStyles["DataTable1"]; //"Column1"のDataGridTextBoxColumnを取得 //"Column1"は数値データ DataGridTextBoxColumn cs1; cs1 = (DataGridTextBoxColumn) ts.GridColumnStyles["Column1"]; //値の書式を地域通貨として指定する cs1.Format = "c"; //"Column2"のDataGridTextBoxColumnを取得 //"Column2"は日時データ DataGridTextBoxColumn cs2; cs2 = (DataGridTextBoxColumn) ts.GridColumnStyles["Column2"]; //値の書式を長い日付として指定する cs2.Format = "D"; //・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ ・DataGridの列に値を表示するときの書式を指定する http://dobon.net/vb/dotnet/datagrid/columnformat.html ─────────────────────────────── ●DataGridの列のテキストの配置方法を変更する 列のテキストの配置方法を左、右、中央に変更するには、その列の DataGridColumnStyle.Alignmentプロパティをそれぞれ HorizontalAlignment.Left、HorizontalAlignment.Right、 HorizontalAlignment.Centerにします。 ここではDataGrid1(DataGridオブジェクト)にDataTable1( DataTableオブジェクト、TableName="DataTable1")が連結されている ものとし、列"Column1"を右揃えとします。 '[VB.NET]・・・・・・・・・・・・・・・・・・・・・・・・・・ 'DataGridTableStyleの取得 Dim ts As DataGridTableStyle ts = DataGrid1.TableStyles("DataTable1") '"Column1"のDataGridTextBoxColumnを取得 Dim cs1 As DataGridTextBoxColumn cs1 = CType(ts.GridColumnStyles("Column1"), DataGridTextBoxColumn) '右揃えとする cs1.Alignment = HorizontalAlignment.Right '・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ //[C#]・・・・・・・・・・・・・・・・・・・・・・・・・・・・ //DataGridTableStyleの取得 DataGridTableStyle ts; ts = DataGrid1.TableStyles["DataTable1"]; //"Column1"のDataGridTextBoxColumnを取得 DataGridTextBoxColumn cs1; cs1 = (DataGridTextBoxColumn) ts.GridColumnStyles["Column1"]; //右揃えとする cs1.Alignment = HorizontalAlignment.Right; //・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ ・DataGridの列のテキストの配置方法を変更する http://dobon.net/vb/dotnet/datagrid/columnalignment.html =============================== ■このマガジンの購読、購読中止、バックナンバー、説明に関しては  次のページをご覧ください。  http://www.mag2.com/m/0000104516.htm ■発行人・編集人:どぼん!  http://dobon.net  dobon@bigfoot.com ■ご質問等はメールではなく、掲示板へお願いいたします。  http://dobon.net/bbs ■上記メールアドレスへのメールは確実に読まれる保障はありません  (スパム、ウィルス対策です)。メールは下記URLのフォームメール  から送信してください。  http://dobon.net/mail.html Copyright (c) 2003 DOBON! All rights reserved. ===============================