C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.2129 の関連記事表示

<< 0 | 1 >>
■2194  Re[7]: Leaveイベントでボタンがクリックされたかどうかを取得したい
□投稿者/ やす -(2005/12/22(Thu) 19:28:42)

    分類:[C#] 

    シャノンさん 返答が遅くなってしまって申し訳ございません。

    >#インターネット上では丸囲み文字は使わないのがお約束です。

    了解しました。以後気をつけたいと思います。

    >ご希望の問題には、スマートな解決策が思いつきません(醜い解決策なら出てきそうですが)。

    そうですか。やはり難しいのですねぇ・・・。
    現在の仕様では入力値にエラーがあった場合、エラーがあったテキストボックスに
    フォーカスを設定するようになっています。
    ボタン2にフォーカスが遷移しただけであれば(クリックではなくて)、
    入力チェックを行ってエラーがあった場合には該当テキストにフォーカスを設定してあげなくてはなりません。
    ですのでシャノンさんがおっしゃられるようにボタンにフォーカスが移ってもチェックなしという訳にはいかないのが現状です。

    いい解決策が思い浮かびませんので、とりあえずはボタン2を押下した時にもチェックイベントが走ってしまいますが、
    現状のままで行きたいと思います。
    ご回答頂きまして本当にありがとうございました。
    また何かございましたら宜しくお願い致します。
記事No.2129 のレス /0過去ログ2より / 関連記事表示
削除チェック/

■2164  Re[6]: Leaveイベントでボタンがクリックされたかどうかを取得したい
□投稿者/ シャノン -(2005/12/20(Tue) 01:09:56)

    分類:[C#] 

    #インターネット上では丸囲み文字は使わないのがお約束です。

    改めて読み返して、自分がすげぇ勘違いをしていたことに気がつきました。ごめんなさい。
    ご希望の問題には、スマートな解決策が思いつきません(醜い解決策なら出てきそうですが)。
    ただ、このように考えを変えてはどうだろうと思いつきました。

    マウスではなく、キーボードでの操作を好む人もいる。
    そのような人は、ボタンにフォーカスを移してから、Space キーか何かでクリックしたいと思うかもしれないが、提示された仕様ではそれが不可能である。
    逆に考えれば、「ボタンにフォーカスを移す」ということは「次にクリックする」ということしか考えられないのだから、ボタンにフォーカスが移ってもチェックなしで問題ないのではないか。
記事No.2129 のレス /0過去ログ2より / 関連記事表示
削除チェック/

■2158  Re[5]: Leaveイベントでボタンがクリックされたかどうかを取得したい
□投稿者/ やす -(2005/12/19(Mon) 10:03:27)

    分類:[C#] 

    シャノンさん ご回答ありがとうございます。

    ボタン2を押下すると前画面へ遷移するようになるのですが、
    現状のままですとボタン押下した場合でもチェックが走ってしまいます。
    チェックが走っても前画面へ戻れるのは戻れるのですが、
    メッセージが表示されてしまうので、
    ボタン2を押下した場合はチェックを走らなくしたいので、
    @ボタンがクリックされた
    Aボタンはクリックされてないが、ボタンにフォーカスがセットされた。(タブ遷移等で)
    と上記の2つを判断したいと思った次第です。
記事No.2129 のレス /0過去ログ2より / 関連記事表示
削除チェック/

■2149  Re[4]: Leaveイベントでボタンがクリックされたかどうかを取得したい
□投稿者/ シャノン -(2005/12/16(Fri) 22:26:48)

    分類:[C#] 

    > 不勉強で申し訳ございませんが、CausesValidationですが、フォーカスを受け取ると検証が必要なコントロールかどうかを判断するフラグなだけで、
    > @ボタンがクリックされた。
    > Aボタンはクリックされてないが、ボタンにフォーカスがセットされた。(タブ遷移等で)
    > 上記を判断する材料になるのでしょうか??

    これを判断する必要があるのでしょうか?
    言い換えれば、
    (1)入力値の検証を必要としない
    (2)入力値の検証を必要とする
    ということですよね。
記事No.2129 のレス /0過去ログ2より / 関連記事表示
削除チェック/

■2144  Re[3]: Leaveイベントでボタンがクリックされたかどうかを取得したい
□投稿者/ やす -(2005/12/16(Fri) 09:36:04)

    分類:[C#] 

    じゃんぬさん、シャノンさんご回答ありがとうございます。

    不勉強で申し訳ございませんが、CausesValidationですが、フォーカスを受け取ると検証が必要なコントロールかどうかを判断するフラグなだけで、
    @ボタンがクリックされた。
    Aボタンはクリックされてないが、ボタンにフォーカスがセットされた。(タブ遷移等で)
    上記を判断する材料になるのでしょうか??

    >ひとつ突っ込ませていただくと、そのイベント内でやりたいのが入力値の検証でないのならば、Validated イベントの方が適切かと思われます。

    入力値の検証をやりたいと思っています。

    ご迷惑おかけしますが宜しくお願い致します。

記事No.2129 のレス /0過去ログ2より / 関連記事表示
削除チェック/

■2143  Re[2]: Leaveイベントでボタンがクリックされたかどうかを取得したい
□投稿者/ シャノン -(2005/12/16(Fri) 01:36:33)

    分類:[C#] 

    No2136に返信(じゃんぬさんの記事)
    > Leave イベントではなく Validating イベントでやると良いでしょう。

    ひとつ突っ込ませていただくと、そのイベント内でやりたいのが入力値の検証でないのならば、Validated イベントの方が適切かと思われます。
記事No.2129 のレス /0過去ログ2より / 関連記事表示
削除チェック/

■2142  Re[4]: Leaveイベントでボタンがクリックされたかどうかを取得したい
□投稿者/ じゃんぬ -(2005/12/16(Fri) 01:09:53)
>
記事No.2129 のレス /0過去ログ2より / 関連記事表示
削除チェック/

■2139  Re[3]: Leaveイベントでボタンがクリックされたかどうかを取得したい
□投稿者/ シャノン -(2005/12/15(Thu) 21:36:00)

    分類:[C#] 

    CausesValidation プロパティについて調べてみてください。
記事No.2129 のレス /0過去ログ2より / 関連記事表示
削除チェック/

■2138  Re[2]: Leaveイベントでボタンがクリックされたかどうかを取得したい
□投稿者/ やす -(2005/12/15(Thu) 19:16:08)

    分類:[C#] 

    じゃんぬさん回答ありがとうございます。

    ActiveControlで確かにコントロールは取得出来ますが、
    テキストボックスからボタンへTabキーを押下してコントロールが遷移した場合と、
    ボタンをクリックした場合で、同じ値が取得出来てしまいますよね?

    テキストボックスからTabキーを押下してボタンへコントロールが遷移した場合は、
    テキストボックスのLeaveイベント(Validaitingイベント)の処理をしたいのですが、
    テキストボックスにコントロールがある時に、ボタンをクリックした場合は、Leaveイベント(Validaitingイベント)の処理は行いたくありません。
    テキストボックスからボタンへ単純にフォーカスが移っただけなのか、
    もしくはテキストボックスにフォーカスがある時にボタンが押下されたのかを
    判定したいのですが可能なのでしょうか?


記事No.2129 のレス /0過去ログ2より / 関連記事表示
削除チェック/

■2136  Re[1]: Leaveイベントでボタンがクリックされたかどうかを取得したい
□投稿者/ じゃんぬ -(2005/12/15(Thu) 16:49:19)
>

    分類:[C#] 

    No2129に返信(やすさんの記事)
    > テキストボックスのLeaveイベントでボタン2がクリックされたかどうかの判定は可能でしょうか?

    Leave イベントではなく Validating イベントでやると良いでしょう。
    Validating イベントでは、ActiveControl で遷移先のコントロールを取得できます。
記事No.2129 のレス /0過去ログ2より / 関連記事表示
削除チェック/

■2130  Leaveイベントでボタンがクリックされたかどうかを取得したい
□投稿者/ やす -(2005/12/15(Thu) 10:33:41)

    分類:[C#] 

    すいません。。。タイトル書き忘れていました。
    編集の仕方がわからないのでご容赦下さい。
    申し訳がございません。
記事No.2129 のレス /0過去ログ2より / 関連記事表示
削除チェック/

■2129  Leaveイベントでボタンがクリックされたかどうかを取得したい
□投稿者/ やす -(2005/12/15(Thu) 10:30:42)

    分類:[C#] 


    分類:[C#] 

    はじめまして。
    C#でWindowsアプリケーションの開発を行っています。

    テキストボックスとボタン1とボタン2が存在する画面で、
    テキストボックスのLeaveイベントでボタン2がクリックされたかどうかの判定は可能でしょうか?
    Leaveイベントの処理はボタン2がクリックされた時は何も処理せずに終了したいのです。
    それ以外の場合(テキストボックスからボタン2へTabキーでフォーカス遷移した場合等)は、処理を行いたいと考えています。

    説明がわかりづらいかも知れませんがどうぞ宜しくお願いします。
親記事 /0過去ログ2より / 関連記事表示
削除チェック/

■2129  SplitContainerの分割線
□投稿者/ K -(2007/03/20(Tue) 00:04:22)

    分類:[.NET 全般] 

    どうもお世話になっております。

    2.0で追加されたSplitContainerの分割線ですが、
    つかんでサイズ変更すると、分割バー上にドラッグ中のハーフトーンイメージ(?)
    のようなものが残ってしまいます。
    これは仕様なんでしょうか?

    2.0以降はSplitterの代わりにSplitContainerを使えというお達しなのですが、
    おかげで導入する気がおきません。

    Splitterと同じ表示が欲しい場合、バー部分を自分で描画するしかないのでしょうか?
    OnPaintオーバーライドかな。
親記事 /過去ログ11より / 関連記事表示
削除チェック/

■2132  Re[1]: SplitContainerの分割線
□投稿者/ Jitta -(2007/03/20(Tue) 07:41:48)
    No2129 (K さん) に返信
    > どうもお世話になっております。
    >
    > 2.0で追加されたSplitContainerの分割線ですが、
    > つかんでサイズ変更すると、分割バー上にドラッグ中のハーフトーンイメージ(?)
    > のようなものが残ってしまいます。
    > これは仕様なんでしょうか?
    >
    > 2.0以降はSplitterの代わりにSplitContainerを使えというお達しなのですが、
    > おかげで導入する気がおきません。
    >
    > Splitterと同じ表示が欲しい場合、バー部分を自分で描画するしかないのでしょうか?
    > OnPaintオーバーライドかな。
    >


    再現していません。
    描写ルーチンとか、いじっていませんか?
記事No.2129 のレス /過去ログ11より / 関連記事表示
削除チェック/

■2149  Re[2]: SplitContainerの分割線
□投稿者/ K -(2007/03/20(Tue) 23:06:51)
    2007/03/20(Tue) 23:12:59 編集(投稿者)

    ちょっと検索してみました。
    以下の図1の右の縦スプリットが、同じように表示がおかしくなっています。
    多分、私の環境だけではないと思うのですが・・・

    http://itpro.nikkeibp.co.jp/article/COLUMN/20060926/249032/

    SplitContainerのイベントもプロパティも全部デフォルトで、こうなります。
    縦にしても横にしても、BoderStyleを変えても、Panelにコントロールを置いても一緒です。

    私の環境ですが、バージョン情報を見ると以下の通りです。

    Microsoft Visual Studio 2005
    Version 8.0.50727.762 (SP.050727-7600)
    Microsoft .NET Framework
    Version 2.0.50727


    // とりあえず、オーバーライドして無理やり正常に表示していますが・・・
    public class SplitContainer2 : SplitContainer
    {
    protected override void OnPaint(PaintEventArgs e)
    {
    using (Brush brush = new SolidBrush(this.BackColor))
    {
    e.Graphics.FillRectangle(brush, e.ClipRectangle);
    }
    }
    }
記事No.2129 のレス /過去ログ11より / 関連記事表示
削除チェック/

■2150  Re[3]: SplitContainerの分割線
□投稿者/ よねKEN -(2007/03/20(Tue) 23:54:50)
>
    私の方でも試してみましたが、再現しました。

    0. 新規プロジェクトを作成
    1. SplitContainerを置いて特にプロパティはいじらず。
    (2. 左、右に適当なコントロールを追加)
    というように準備をして実行。

    1.だけなら、最初から真ん中にハーフトーンのボーダー(※)が表示されている。
    1.と2.なら、最初は正常な表示でスプリットのバーを操作した後には、やはりハーフトーンのボーダーが表示される。

    ※1 Kさん提示のURLで言うところのbutton1とRichTextBox1の間のチェッカーフラッグ模様の線
    (http://itpro.nikkeibp.co.jp/article/COLUMN/20060926/249032/)

    私の環境は、
    Visual Basic 2005 Express Edition (Version 8.0.50727.762 (SP.050727-7600))
    Windows XP pro SP2
    です。

    解決策じゃないですが、とりあえず再現したよ、ということで。
記事No.2129 のレス /過去ログ11より / 関連記事表示
削除チェック/

■2151  Re[4]: SplitContainerの分割線
□投稿者/ 中博俊 -(2007/03/21(Wed) 09:35:18)
>
    フォーカス持ってるだけでしょ?
記事No.2129 のレス /過去ログ11より / 関連記事表示
削除チェック/

■2153  Re[5]: SplitContainerの分割線
□投稿者/ Mr.T -(2007/03/21(Wed) 11:16:23)
    Mr.Tです、こんにちは。

    No2151 (中博俊 さん) に返信
    > フォーカス持ってるだけでしょ?

    私も試してみたんですが、そのようですね。
    確認として、SplitterWidthを適当に大きくして動かしてみると
    フォーカスだとわかります。
    フォーカス移動なので、他のコントロールにフォーカスを移動すれば消えます。

    SplitterMovedイベントで他のコントロールにフォーカスするとか、
    SplitContainer1.Enabled=Falseの直後に
    SplitContainer1.Enabled=True
    にするとか他にもあるんでしょうけど、そこらへんはどうとでも
    できますね。

    環境:
    Microsoft Visual Studio 2005
    Version 8.0.50727.762 (SP.050727-7600)
    Microsoft .NET Framework
    Version 2.0.50727


記事No.2129 のレス /過去ログ11より / 関連記事表示
削除チェック/

■2152  Re[5]: SplitContainerの分割線
□投稿者/ よねKEN -(2007/03/21(Wed) 10:59:01)
>
    No2151 (中博俊 さん) に返信
    > フォーカス持ってるだけでしょ?

    なるほど、そのようですね。
    SplitterMovedイベントで適当なコントロールのFocusメソッドを呼び出してみたら、問題なしでした。

    とはいえ、explorerのようなペインを実現するためのコントロールとしては、
    スプリッタのこの表示はうれしくないですね。
    どちらかというと、フォーカスは元のコントロールに維持されたままというのが期待される動作だと思います。
    #スプリッタの位置を変更するたびにフォーカスを取られたのでは困りますし。

    Splitterコントロールで同様のことを行った場合は、こういうことにはなりませんね。

    SplitterコントロールとSplitContainerコントロールで動作実験を行いましたが、
    スプリッタをドラッグする瞬間に、
    前者はフォーカスを取らないが、後者はフォーカスを取ってますね。

    例えば、TextBoxを配置し、LeaveイベントとValidatingイベントを処理するように記述しておきます。
    そして、実行時にTextBox入力中にスプリットを動かすと、
    Splitterの場合は何も起こらず、SplitContainerの場合はTextBoxのLeaveイベントが起きます。
    そして、フォーカスを元のTextBoxにFocusメソッドで強引に戻してやると
    Validatingイベントが起きましたorz

    SplitとSplitContainerで仕様が違うんだといってしまえばそれまでですが、
    なんかSplitContainerいけてないですね・・・
記事No.2129 のレス /過去ログ11より / 関連記事表示
削除チェック/

■2154  Re[6]: SplitContainerの分割線
□投稿者/ K -(2007/03/21(Wed) 12:59:32)
    No2151 (中博俊 さん) に返信
    >フォーカス持ってるだけでしょ?

    ありがとうございます。気づきませんでした。
    どうも、OnPaintの中でわざわざFocus線を描画しているようです。
    OnPaintをオーバーライドして何もしないだけで、Focus表示はなくなりました。

    以下でとりあえず問題はなさそうですが、正直ちょっと使いづらいです。
    1.TabStopをfalse
    2.SplitterMovedイベントでフォーカスを他へ移動
    (分割線のドラッグ以外で移動した場合もSplitterMovedイベントが発生してしまう模様)

    Splitterと同じようにサイズ変更しても元のフォーカスを維持したいのですが、うまくいきません。
    OnCreateControlをオーバーライドしてSelectableスタイルをfalseにしたのですが、フォーカスを受け取ってしまいます。

    protected override void OnCreateControl()
    {
    base.OnCreateControl();
    this.SetStyle(ControlStyles.Selectable, false);
    }


記事No.2129 のレス /過去ログ11より / 関連記事表示
削除チェック/

次の20件>

<< 0 | 1 >>

パスワード/

- Child Tree -