1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
|
namespace Sample5 {
using System;
using System.IO;
using System.Net;
using System.Drawing;
using System.Windows.Forms;
public class MyForm : Form {
private TextBox mTextBox; // テキストボックス
private string mDefaultDirectory; // カレントディレクトリ
// Main
public static void Main(string[] args) {
MyForm frm = new MyForm();
Application.Run(frm);
}
// コンストラクタ
public MyForm() {
// メインメニューを生成
MainMenu mm = new MainMenu();
// ファイルメニューを生成
MenuItem mi = mm.MenuItems.Add("ファイル(&F)");
mi.MenuItems.Add(new MenuItem("開く(&O)...", new EventHandler(this.FileOpen_Clicked)));
mi.MenuItems.Add("-");
mi.MenuItems.Add(new MenuItem("終了(&X)", new EventHandler(this.FileExit_Clicked), Shortcut.CtrlQ));
// ヘルプメニューを生成
mi = mm.MenuItems.Add("ヘルプ(&H)");
mi.MenuItems.Add(new MenuItem("バージョン情報(&A)...", new EventHandler(this.HelpAbout_Clicked)));
// フォームのメニューとしてセット
this.Menu = mm;
// 開くボタンを生成
Button btn = new Button();
btn.Text = "開く...";
btn.Location = new Point(2, 2); // 座標を設定
btn.Size = new Size(100, 22); // サイズを設定
btn.TabIndex = 0; // タブ順は最初
btn.Anchor = AnchorStyles.Top | AnchorStyles.Left; // 左上を固定
btn.Click += new EventHandler(this.FileOpen_Clicked);
this.Controls.Add(btn);
// URLを開くボタンを生成
btn = new Button();
btn.Text = "URLを開く...";
btn.Location = new Point(104, 2); // 座標を設定
btn.Size = new Size(100, 22); // サイズを設定
btn.TabIndex = 1; // タブ順は最初
btn.Anchor = AnchorStyles.Top | AnchorStyles.Left; // 左上を固定
btn.Click += new EventHandler(this.UrlOpen_Clicked);
this.Controls.Add(btn);
// テキストボックスを生成
mTextBox = new TextBox();
mTextBox.Text = "";
mTextBox.Location = new Point(0, 26); // 座標を設定
mTextBox.Size = new Size(this.ClientSize.Width, this.ClientSize.Height - 26);
// サイズを設定
mTextBox.Multiline = true; // 複数行OKにする
mTextBox.ScrollBars = ScrollBars.Both; // スクロールバーを表示
mTextBox.BackColor = Color.White; // 背景色を白にする
mTextBox.TabIndex = 2; // タブ順は2番目
mTextBox.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right;
// 上下左右とも固定
Controls.Add(mTextBox);
}
// ファイル−開くメニューのイベントハンドラ
private void FileOpen_Clicked(object sender, EventArgs e) {
OpenFileDialog opendlg = new OpenFileDialog();
opendlg.Filter = "テキストファイル (*.txt)|*.txt|すべてのファイル (*.*)|*.*" ;
opendlg.InitialDirectory = mDefaultDirectory;
if (opendlg.ShowDialog() == DialogResult.OK) {
// ディレクトリを保存しておく
FileInfo fi = new FileInfo(opendlg.FileName);
mDefaultDirectory = fi.DirectoryName;
// ファイルを読み込む
Stream stm = opendlg.OpenFile();
if (stm != null) {
StreamReader reader = new StreamReader(stm, System.Text.Encoding.GetEncoding("Shift_JIS"));
mTextBox.Text = reader.ReadToEnd();
stm.Close();
}
}
}
// ファイル−終了メニューのイベントハンドラ
private void FileExit_Clicked(object sender, EventArgs e) {
this.Close();
}
// ヘルプ−バージョン情報メニューのイベントハンドラ
private void HelpAbout_Clicked(object sender, EventArgs e) {
MessageBox.Show("Sample3aプログラム Ver 0.1");
}
// URLを開くボタンのイベントハンドラ
private void UrlOpen_Clicked(object sender, EventArgs e) {
WebRequest req = WebRequest.Create("http://www.msn.co.jp/home.htm");
WebResponse rsp = req.GetResponse();
Stream stm = rsp.GetResponseStream();
if (stm != null) {
StreamReader reader = new StreamReader(stm, System.Text.Encoding.GetEncoding("Shift_JIS"));
mTextBox.Text = reader.ReadToEnd();
stm.Close();
}
rsp.Close();
}
}
}
|