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

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

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

No.98291 の関連記事表示

<< 0 >>
■98291  Buttonのフォーカス?表示を維持するには
□投稿者/ ゆい -(2021/10/28(Thu) 19:41:45)

    分類:[VB.NET/VB2005 以降] 

    VB2017です。
    Button1、Button2、RadioButton1があったとします。
    Button1もしくはButton2をクリックすればフォーカスと言うのでしょうか?
    枠が付いて表示もされますよね。
    そこでRadioButton1をクリックすればその枠も消えてしまいます。
    消えなくするにはどうすれば良いのでしょうか?
    簡単に出来る方法がありましたらよろしくお願いします。
親記事 /過去ログ170より / 関連記事表示
削除チェック/

■98292  Re[1]: Buttonのフォーカス?表示を維持するには
□投稿者/ 魔界の仮面弁士 -(2021/10/28(Thu) 20:12:26)
    No98291 (ゆい さん) に返信
    > 消えなくするにはどうすれば良いのでしょうか?

    RadioButton を継承し、SetStyle メソッドで Selectable を False にします。

    Public Class NonSelectableRadioButton
     Inherits RadioButton
     Public Sub New()
      SetStyle(ControlStyles.Selectable, False)
     End Sub
    End Class
記事No.98291 のレス /過去ログ170より / 関連記事表示
削除チェック/

■98293  Re[2]: Buttonのフォーカス?表示を維持するには
□投稿者/ 魔界の仮面弁士 -(2021/10/28(Thu) 20:21:34)
    No98292 (魔界の仮面弁士) に追記
    > ■No98291 (ゆい さん) に返信
    >>消えなくするにはどうすれば良いのでしょうか?
    > RadioButton を継承し、SetStyle メソッドで Selectable を False にします。


    何らかの事情で、継承コントロールを利用できない場合には、
    リフレクションで無理矢理設定するという手段もあります。

    Imports System.Reflection
    Public Class Form1
     Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
      ForceSetStyle(RadioButton1, ControlStyles.Selectable, False)
      ForceSetStyle(RadioButton2, ControlStyles.Selectable, False)
      ForceSetStyle(RadioButton3, ControlStyles.Selectable, False)
     End Sub

     Public Sub ForceSetStyle(target As Control, stlye As ControlStyles, value As Boolean)
      target.GetType().InvokeMember("SetStyle", BindingFlags.NonPublic Or BindingFlags.Instance Or BindingFlags.InvokeMethod, Nothing, target, New Object() {stlye, value})
     End Sub
    End Class


    いずれにせよ、直接的にフォーカスを得られなくなるため、
    キーボードでの選択ができなくなるという制限がつきます。
記事No.98291 のレス /過去ログ170より / 関連記事表示
削除チェック/

■98294  Re[3]: Buttonのフォーカス?表示を維持するには
□投稿者/ ゆい -(2021/10/28(Thu) 22:29:16)
    No98293 (魔界の仮面弁士 さん) に返信

    すみません。
    RadioButton1での操作が終わった時点で、Button1もしくはButton2に、枠が付いて表示がされていればいいのです。
    Button1もしくはButton2にクリックはせずに、プログラム上にて同じ作用を施すことはできないのでしょうか?
記事No.98291 のレス /過去ログ170より / 関連記事表示
削除チェック/

■98297  Re[4]: Buttonのフォーカス?表示を維持するには
□投稿者/ KOZ -(2021/10/29(Fri) 09:56:43)
    No98294 (ゆい さん) に返信
    > RadioButton1での操作が終わった時点で、Button1もしくはButton2に、枠が付いて表示がされていればいいのです。

    なんとなくですが、トグルボタンを使うといいのではないかと感じます。
    RadioButton や、CheckBox の Appearance プロパティを Button にすると、トグルボタンになります。

    【使用例】
    http://hiros-dot.net/CS2005/Control/RadioButton/RadioButton01.htm
記事No.98291 のレス /過去ログ170より / 関連記事表示
削除チェック/

■98295  Re[2]: Buttonのフォーカス?表示を維持するには
□投稿者/ ゆい -(2021/10/28(Thu) 22:38:34)
    No98292 (魔界の仮面弁士 さん) に返信

    ありがとうございます。
    これはどこに書くのですか?

    > RadioButton を継承し、SetStyle メソッドで Selectable を False にします。
    >
    > Public Class NonSelectableRadioButton
    >  Inherits RadioButton
    >  Public Sub New()
    >   SetStyle(ControlStyles.Selectable, False)
    >  End Sub
    > End Class
記事No.98291 のレス /過去ログ170より / 関連記事表示
削除チェック/

■98296  Re[3]: Buttonのフォーカス?表示を維持するには
□投稿者/ WebSurfer -(2021/10/28(Thu) 23:14:37)
    どうして何の(WinForms? WPF? ASP.NET Web Forms? html? その他?)Button かが分かって
    回答できるんでしょう? 不思議です。わんくまメンバー間で別途メールとか Face-to-face
    でやり取りできる?
記事No.98291 のレス /過去ログ170より / 関連記事表示
削除チェック/

■98299  Re[1]: Buttonのフォーカス?表示を維持するには
□投稿者/ furu -(2021/10/29(Fri) 10:34:20)
    No98291 (ゆい さん) に返信
    > 簡単に出来る方法がありましたらよろしくお願いします。
    フォーカスのあったボタンを覚えておいて
    ラジオボタンの処理が終わったら
    フォーカスを戻してはどうでしょうか?
    
    Dim ActiveButton As Button
    
    Private Sub Button1_Validating(sender As Object, e As System.ComponentModel.CancelEventArgs) Handles Button1.Validating, Button2.Validating
        If TypeOf ActiveControl Is RadioButton Then
            ActiveButton = sender
        End If
    End Sub
    
    Private Sub RadioButton1_Click(sender As Object, e As EventArgs) Handles RadioButton2.Click, RadioButton1.Click
        If Not (ActiveButton Is Nothing) Then
            ActiveButton.Focus()
            ActiveButton = Nothing
        End If
    End Sub
記事No.98291 のレス /過去ログ170より / 関連記事表示
削除チェック/

■98301  Re[2]: Buttonのフォーカス?表示を維持するには
□投稿者/ ゆい -(2021/10/29(Fri) 20:34:16)
    No98299 (furu さん) に返信

    ありがとうございます。
    これがピッタリのような気がします。

    ラジオボタン(RadioButton1、RadioButton1)と同様なことが、
    ボタン(Button3)でも出来るのでしょうか?

    即ち、RadioButton1、RadioButton1、Button3のどれかが押されてもです。


    > フォーカスのあったボタンを覚えておいて
    > ラジオボタンの処理が終わったら
    > フォーカスを戻してはどうでしょうか?
    >
    > Dim ActiveButton As Button
    >
    > Private Sub Button1_Validating(sender As Object, e As System.ComponentModel.CancelEventArgs) Handles Button1.Validating, Button2.Validating
    > If TypeOf ActiveControl Is RadioButton Then
    > ActiveButton = sender
    > End If
    > End Sub
    >
    > Private Sub RadioButton1_Click(sender As Object, e As EventArgs) Handles RadioButton2.Click, RadioButton1.Click
    > If Not (ActiveButton Is Nothing) Then
    > ActiveButton.Focus()
    > ActiveButton = Nothing
    > End If
    > End Sub
記事No.98291 のレス /過去ログ170より / 関連記事表示
削除チェック/

■98302  Re[3]: Buttonのフォーカス?表示を維持するには
□投稿者/ furu -(2021/10/29(Fri) 20:45:56)
    No98301 (ゆい さん) に返信
    > ラジオボタン(RadioButton1、RadioButton1)と同様なことが、
    > ボタン(Button3)でも出来るのでしょうか?
    > 
    > 即ち、RadioButton1、RadioButton1、Button3のどれかが押されてもです。
    処理としては同じです。
    
    Dim ActiveButton As Button
    Private Sub RadioButton1_Click(sender As Object, e As EventArgs) Handles RadioButton2.Click, RadioButton1.Click, Button3.Click
        If Not (ActiveButton Is Nothing) Then
            ActiveButton.Focus()
            ActiveButton = Nothing
        End If
    End Sub
    
    Private Sub Button1_Validating(sender As Object, e As System.ComponentModel.CancelEventArgs) Handles Button1.Validating, Button2.Validating
        If TypeOf ActiveControl Is RadioButton Or ActiveControl Is Button3 Then
            ActiveButton = sender
        End If
    End Sub
記事No.98291 のレス /過去ログ170より / 関連記事表示
削除チェック/

■98303  Re[4]: Buttonのフォーカス?表示を維持するには
□投稿者/ ゆい -(2021/10/29(Fri) 23:47:10)
    No98302 (furu さん) に返信

    ありがとうございました。
    希望してたようになりました。
    また教えてくださいね。
記事No.98291 のレス / END /過去ログ170より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -