public ThreadViewerView() { Logger.Instance.Debug("ThreadViewerView[]"); InitializeComponent(); Init(); // 設定の読み込み LoadSetting(); //--------------------------------------------------- // データバインド設定 //--------------------------------------------------- textBoxUrl.DataBindings.Add("Text", viewModel, "ThreadUrl"); textBoxMessage.DataBindings.Add("Text", viewModel, "Message"); //--------------------------------------------------- // ボタン押下 //--------------------------------------------------- // 更新ボタン押下 toolStripButtonUpdate.Click += (sender, e) => viewModel.UpdateThread(); // スクロールボタン押下 toolStripButtonTop.Click += (sender, e) => threadViewer.ScrollToTop(); toolStripButtonBottom.Click += (sender, e) => threadViewer.ScrollToBottom(); // スレッド一覧表示ボタン押下 toolStripButtonThreadList.MouseDown += (sender, e) => ToggleThreadList(); // 書き込み欄表示ボタン押下 toolStripButtonWriteField.MouseDown += (sender, e) => ToggleWriteField(); // 設定ボタン押下 toolStripButtonSetting.MouseDown += (sender, e) => { var view = new ViewerSettingView(); view.TopMost = TopMost; view.ShowDialog(); }; // 書き込みボタン押下 buttonWrite.Click += (sender, e) => viewModel.WriteRes(textBoxName.Text, textBoxMail.Text, textBoxMessage.Text); //--------------------------------------------------- // イベント登録 //--------------------------------------------------- viewModel.PropertyChanged += (sender, e) => PropertyChanged(e); // 自動更新 autoUpdateTimer.Tick += (sender, e) => viewModel.UpdateThread(); // レス書き込み textBoxMessage.KeyDown += (sender, e) => { if (((e.Modifiers == Keys.Control) && (e.KeyCode == Keys.Enter)) || ((e.Modifiers == Keys.Shift) && (e.KeyCode == Keys.Enter))) { e.SuppressKeyPress = true; viewModel.WriteRes(textBoxName.Text, textBoxMail.Text, textBoxMessage.Text); } }; // URL欄キー押下 textBoxUrl.KeyDown += (sender, e) => { if (e.KeyCode == Keys.Enter) { viewModel.ChangeUrl(textBoxUrl.Text); } }; // スレッド選択変更 threadListView.SelectedIndexChanged += (sender, e) => { if (threadListView.SelectedItems.Count <= 0) { return; } viewModel.ChangeThread(threadListView.Items[threadListView.SelectedItems[0].Index].Tag as string); }; // 起動時に最下位にスクロールする toolStripButtonBottom.Checked = true; threadViewer.DocumentCompleted += (sender, e) => { threadViewer.DocumentScroll += (sender_, e_) => { // スクロール位置が最上位か toolStripButtonTop.Checked = threadViewer.IsScrollTop; // スクロールイ位置が最下位か toolStripButtonBottom.Checked = threadViewer.IsScrollBottom; }; }; // 初期化 Load += (sender, args) => { // 起動時にウィンドウサイズを復帰する if (ViewerSettings.ReturnSizeOnStart) { Width = ViewerSettings.ReturnSize.Width; Height = ViewerSettings.ReturnSize.Height; } // ここでやらないとウィンドウ位置が復帰できない? // 起動時にウィンドウ位置を復帰する if (ViewerSettings.ReturnPositionOnStart) { Location = ViewerSettings.ReturnPosition; } }; // 終了処理 FormClosed += (sender, e) => { WINDOWPLACEMENT placement; Win32API.GetWindowPlacement(Handle, out placement); // 終了時の位置とサイズを保存 if (ViewerSettings.SaveReturnPositionOnClose) { ViewerSettings.ReturnPosition = new Point(placement.normalPosition.left, placement.normalPosition.top); } if (ViewerSettings.SaveReturnSizeOnClose) { ViewerSettings.ReturnSize = new Size( placement.normalPosition.right - placement.normalPosition.left, placement.normalPosition.bottom - placement.normalPosition.top); } ViewerSettings.Save(); }; // URLの設定 textBoxUrl.Text = viewModel.ThreadUrl; // スレッド一覧更新 viewModel.UpdateThreadList(); }
public ThreadViewerView() { Logger.Instance.Debug("ThreadViewerView[]"); InitializeComponent(); Init(); // 設定の読み込み LoadSetting(); //--------------------------------------------------- // データバインド設定 //--------------------------------------------------- textBoxUrl.DataBindings.Add("Text", viewModel, "ThreadUrl"); textBoxMessage.DataBindings.Add("Text", viewModel, "Message"); //--------------------------------------------------- // ボタン押下 //--------------------------------------------------- // 更新ボタン押下 toolStripButtonUpdate.Click += (sender, e) => viewModel.UpdateThread(); // スクロールボタン押下 toolStripButtonTop.Click += (sender, e) => threadViewer.ScrollToTop(); toolStripButtonBottom.Click += (sender, e) => threadViewer.ScrollToBottom(); // スレッド一覧表示ボタン押下 toolStripButtonThreadList.MouseDown += (sender, e) => ToggleThreadList(); // 書き込み欄表示ボタン押下 toolStripButtonWriteField.MouseDown += (sender, e) => ToggleWriteField(); // 設定ボタン押下 toolStripButtonSetting.MouseDown += (sender, e) => { var view = new ViewerSettingView(); view.TopMost = TopMost; view.ShowDialog(); }; // 書き込みボタン押下 buttonWrite.Click += (sender, e) => viewModel.WriteRes(textBoxName.Text, textBoxMail.Text, textBoxMessage.Text); //--------------------------------------------------- // イベント登録 //--------------------------------------------------- viewModel.PropertyChanged += (sender, e) => PropertyChanged(e); // 自動更新 autoUpdateTimer.Tick += (sender, e) => viewModel.UpdateThread(); // レス書き込み textBoxMessage.KeyDown += (sender, e) => { if (((e.Modifiers == Keys.Control) && (e.KeyCode == Keys.Enter)) || ((e.Modifiers == Keys.Shift) && (e.KeyCode == Keys.Enter))) { e.SuppressKeyPress = true; viewModel.WriteRes(textBoxName.Text, textBoxMail.Text, textBoxMessage.Text); } }; // URL欄キー押下 textBoxUrl.KeyDown += (sender, e) => { if (e.KeyCode == Keys.Enter) { viewModel.ChangeUrl(textBoxUrl.Text); } }; // スレッド選択変更 threadListView.SelectedIndexChanged += (sender, e) => { if (threadListView.SelectedItems.Count <= 0) { return; } viewModel.ChangeThread(threadListView.Items[threadListView.SelectedItems[0].Index].Tag as string); }; // 起動時に最下位にスクロールする toolStripButtonBottom.Checked = true; threadViewer.DocumentCompleted += (sender, e) => { threadViewer.DocumentScroll += (sender_, e_) => { // スクロール位置が最上位か toolStripButtonTop.Checked = threadViewer.IsScrollTop; // スクロールイ位置が最下位か toolStripButtonBottom.Checked = threadViewer.IsScrollBottom; }; }; // 初期化 Load += (sender, args) => { // 起動時にウィンドウサイズを復帰する if (ViewerSettings.ReturnSizeOnStart) { Width = ViewerSettings.ReturnSize.Width; Height = ViewerSettings.ReturnSize.Height; } // ここでやらないとウィンドウ位置が復帰できない? // 起動時にウィンドウ位置を復帰する if (ViewerSettings.ReturnPositionOnStart) { Location = ViewerSettings.ReturnPosition; } splitContainerWriteField.SplitterDistance = ViewerSettings.WriteFieldDistance; }; // 終了処理 FormClosed += (sender, e) => { WINDOWPLACEMENT placement; Win32API.GetWindowPlacement(Handle, out placement); // 終了時の位置とサイズを保存 if (ViewerSettings.SaveReturnPositionOnClose) { ViewerSettings.ReturnPosition = new Point(placement.normalPosition.left, placement.normalPosition.top); } if (ViewerSettings.SaveReturnSizeOnClose) { ViewerSettings.ReturnSize = new Size( placement.normalPosition.right - placement.normalPosition.left, placement.normalPosition.bottom - placement.normalPosition.top); } ViewerSettings.WriteFieldDistance = splitContainerWriteField.SplitterDistance; ViewerSettings.Save(); }; // URLの設定 textBoxUrl.Text = viewModel.ThreadUrl; // スレッド一覧更新 viewModel.UpdateThreadList(); }