例外発生時にMaskedTextBoxにフォーカスを移し、全選択状態にする方法
- 題名: 例外発生時にMaskedTextBoxにフォーカスを移し、全選択状態にする方法
- 著者: kiyo7447
- 日時: 2006/10/17 21:06:50
- ID: 17928
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[1]: 例外発生時にMaskedTextBoxにフォーカスを移し、全選択状態にする方法
- 著者: はいこーん
- 日時: 2006/10/17 21:13:44
- ID: 17929
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: 例外発生時にMaskedTextBoxにフォーカスを移し、全選択状態にする方法
- 著者: kiyo7447
- 日時: 2006/10/18 8:54:13
- ID: 17932
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[1]: 例外発生時にMaskedTextBoxにフォーカスを移し、全選択状態にする方法
- 著者: エツ
- 日時: 2006/10/18 10:00:31
- ID: 17933
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[1]: 例外発生時にMaskedTextBoxにフォーカスを移し、全選択状態にする方法
- 著者: あきひろ
- 日時: 2006/10/18 10:34:12
- ID: 17935
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: 例外発生時にMaskedTextBoxにフォーカスを移し、全選択状態にする方法
- 著者: kiyo7447
- 日時: 2006/10/18 11:52:06
- ID: 17937
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[3]: 例外発生時にMaskedTextBoxにフォーカスを移し、全選択状態にする方法
- 著者: エツ
- 日時: 2006/10/18 12:14:30
- ID: 17938
- この記事の返信元:
- この記事への返信:
- ツリーを表示
分類:[.NET]
例外発生時にMaskedTextBoxにフォーカスを移し、全選択状態にする方法
こんにちは。アべです。
入力エラーを例外として扱っております。
(エラーのキャッチは、ApplicationクラスのThreadExceptionメソッドを
使用して一箇所で行っています。)
入力エラーの例外をキャッチし、対象のコントロールに
フォーカスを移し、全選択状態にするということで、
MaskedTextBoxだと出来ないのですが、何か考え方が
間違っているのでしょうか?
原因がわからず非常に困っております。
どなたかエラー発生時に全選択状態にする方法がわかれば
アドバイスをお願い致します。
↓再現ソース
Enterキーを押すと例外が発生し、そのコントロールにフォーカスを移し、
全選択状態にする処理が入っているのですが、それが正常に動作しません。
▼Program.cs
using System;
using System.Collections.Generic;
using System.Windows.Forms;
namespace WindowsApplication1
{
static class Program
{
/// <summary>
/// アプリケーションのメイン エントリ ポイントです。
/// </summary>
[STAThread]
static void Main()
{
Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
_f = new Form1();
Application.Run(_f);
}
static Form1 _f;
static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e)
{
if (e.Exception is ApplicationException)
{
if (e.Exception.Message == "a")
{
_f.textBox1.Focus();
_f.textBox1.SelectAll();
}
else if (e.Exception.Message == "b")
{
_f.maskedTextBox1.Focus();
_f.maskedTextBox1.SelectAll();
}
}
}
}
}
▼Form1.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace WindowsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void maskedTextBox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
throw new ApplicationException("b");
}
}
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
throw new ApplicationException("a");
}
}
}
}
▼Form1.Designer.cs
namespace WindowsApplication1
{
partial class Form1
{
/// <summary>
/// 必要なデザイナ変数です。
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// 使用中のリソースをすべてクリーンアップします。
/// </summary>
/// <param name="disposing">マネージ リソースが破棄される場合 true、破棄されない場合は false です。</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows フォーム デザイナで生成されたコード
/// <summary>
/// デザイナ サポートに必要なメソッドです。このメソッドの内容を
/// コード エディタで変更しないでください。
/// </summary>
private void InitializeComponent()
{
this.maskedTextBox1 = new System.Windows.Forms.MaskedTextBox();
this.textBox1 = new System.Windows.Forms.TextBox();
this.SuspendLayout();
//
// maskedTextBox1
//
this.maskedTextBox1.Location = new System.Drawing.Point(44, 27);
this.maskedTextBox1.Margin = new System.Windows.Forms.Padding(6, 5, 6, 5);
this.maskedTextBox1.Mask = "0000/00/00";
this.maskedTextBox1.Name = "maskedTextBox1";
this.maskedTextBox1.Size = new System.Drawing.Size(180, 28);
this.maskedTextBox1.TabIndex = 1;
this.maskedTextBox1.ValidatingType = typeof(System.DateTime);
this.maskedTextBox1.KeyDown += new System.Windows.Forms.KeyEventHandler(this.maskedTextBox1_KeyDown);
//
// textBox1
//
this.textBox1.Location = new System.Drawing.Point(44, 63);
this.textBox1.Name = "textBox1";
this.textBox1.Size = new System.Drawing.Size(180, 28);
this.textBox1.TabIndex = 4;
this.textBox1.KeyDown += new System.Windows.Forms.KeyEventHandler(this.textBox1_KeyDown);
//
// Form1
//
this.AutoScaleDimensions = new System.Drawing.SizeF(11F, 21F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(321, 160);
this.Controls.Add(this.textBox1);
this.Controls.Add(this.maskedTextBox1);
this.Font = new System.Drawing.Font("MS ゴシック", 15.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(128)));
this.Margin = new System.Windows.Forms.Padding(6, 5, 6, 5);
this.Name = "Form1";
this.Text = "Form1";
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
//internal AMaskedTextBox maskedTextBox1;
internal System.Windows.Forms.MaskedTextBox maskedTextBox1;
internal System.Windows.Forms.TextBox textBox1;
}
}
以上