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

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

C# と VB.NET の入門サイト

Re[4]: 超初歩的な質問ですがButtonの表示について


(過去ログ 139 を表示中)

[トピック内 11 記事 (1 - 11 表示)]  << 0 >>

■81631 / inTopicNo.1)  超初歩的な質問ですがButtonの表示について
  
□投稿者/ にし (1回)-(2016/10/20(Thu) 23:31:50)

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

超初歩的な質問ですみません。

Button1とButton2を作り、Button1のクリックで設定値などを設定し、Button2のクリックにてそれを実行します。
その場合、Button1をクリックした時点ではButton1は反転表示されてますが、引き続きButton2をクリックすることによりButton1の反転表示は消えてしまいます。
そこで質問なのですがButton2をクリックしてもButton1の反転表示を維持継続するにはどのようにすれば良いのかを教えてください。
よろしくお願いします。

引用返信 編集キー/
■81632 / inTopicNo.2)  Re[1]: 超初歩的な質問ですがButtonの表示について
□投稿者/ shu (924回)-(2016/10/21(Fri) 08:13:15)
No81631 (にし さん) に返信

> 反転表示されますが
どのように処理を行ってそうなっているかですが
フォーカスがあるからそう見えるだけということなので
あればきちんとその表現をコード上で設定するようにしましょう。

例えばBackColorを変えるとか
引用返信 編集キー/
■81638 / inTopicNo.3)  Re[2]: 超初歩的な質問ですがButtonの表示について
□投稿者/ にし (2回)-(2016/10/21(Fri) 12:37:11)
No81632 (shu さん) に返信

Windows 10,VB 2010 です。

表現がまずくてすみません。
反転表示と言いましたが正確にはクリックした時にはそのボタンの枠(縁取り)が太く表示がされます。
これをButton2をクリックした時にもButton1では維持継続が出来ないものかと思っています。

> 例えばBackColorを変えるとか
同等のことが出来るのでしたらその方法を教えてください。

よろしくお願いします。
引用返信 編集キー/
■81641 / inTopicNo.4)  Re[3]: 超初歩的な質問ですがButtonの表示について
□投稿者/ shu (927回)-(2016/10/21(Fri) 16:19:08)
No81638 (にし さん) に返信

> 表現がまずくてすみません。
> 反転表示と言いましたが正確にはクリックした時にはそのボタンの枠(縁取り)が太く表示がされます。
> これをButton2をクリックした時にもButton1では維持継続が出来ないものかと思っています。
その太枠はフォーカスがあることを表すものなので他のコントロールへ移動するとなくなるのは
普通の動作です。



>>例えばBackColorを変えるとか
> 同等のことが出来るのでしたらその方法を教えてください。
>
> よろしくお願いします。
BackColorを変える方法でしょうか?太枠を自分で表示する方法でしょうか?

BackColor
=> Button1.BackColor = Color.Yellow , Button1.BackColor = SystemColors.Control など


太枠
=> パネルを1つ用意してボタンをそのパネル内に配置、
パネルの大きさは太枠に見える部分が出来るようボタンより若干大きくする。
   太枠を表示するときパネルのBackColorを変える。ボタンのBackColorが変わらないよう元の色を設定


このような方法はどうでしょう?


引用返信 編集キー/
■81642 / inTopicNo.5)  Re[1]: 超初歩的な質問ですがButtonの表示について
□投稿者/ 魔界の仮面弁士 (925回)-(2016/10/21(Fri) 16:50:54)
No81631 (にし さん) に返信
> その場合、Button1をクリックした時点ではButton1は反転表示されてますが、引き続きButton2をクリックすることによりButton1の反転表示は消えてしまいます。

Windows Forms でしょうか。
であれば、Button を継承して ControlStyles.Selectable フラグを切ってしまい、
フォーカスの当たらないボタンを実装しておいては如何でしょうか。


処理対象のボタン数が少ないのであれば、継承せずに
リフレクションで直接セットするとか。

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  Dim bf As BindingFlags = BindingFlags.NonPublic Or BindingFlags.Instance
  Dim setStyle = Me.GetType().GetMethod("SetStyle", bf)
  setStyle.Invoke(Button2, New Object() {ControlStyles.Selectable, False})
End Sub
引用返信 編集キー/
■81644 / inTopicNo.6)  Re[4]: 超初歩的な質問ですがButtonの表示について
□投稿者/ にし (3回)-(2016/10/21(Fri) 20:13:07)
No81641 (shu さん) に返信

ありがとうございます。

もっと簡単かと思ったのですが意外と難しいのですね。

手軽なのはBackColorですが太枠も考えてみたいと思います。
引用返信 編集キー/
■81645 / inTopicNo.7)  Re[2]: 超初歩的な質問ですがButtonの表示について
□投稿者/ にし (4回)-(2016/10/21(Fri) 20:16:46)
No81642 (魔界の仮面弁士 さん) に返信

ありがとうございます。
もっと簡単かと思ったのですが意外と難しいのですね。

> Button を継承して ControlStyles.Selectable フラグを切ってしまい、
意味は分かりませんでしたが実行をしますと、何故か「'BindingFlags' が定義されていません。」が出てしまいました。
引用返信 編集キー/
■81646 / inTopicNo.8)  Re[3]: 超初歩的な質問ですがButtonの表示について
□投稿者/ 魔界の仮面弁士 (926回)-(2016/10/21(Fri) 21:28:49)
No81645 (にし さん) に返信
> もっと簡単かと思ったのですが意外と難しいのですね。

質問内容が本当に「初歩的」かどうかは、
慣れた人でないと判断できないと思います。


>>Button を継承して ControlStyles.Selectable フラグを切ってしまい、
> 意味は分かりませんでしたが実行をしますと、何故か「'BindingFlags' が定義されていません。」が出てしまいました。

名前空間が通っていないことが原因です。

対処方法は幾つかありますが、まずはエラーの出たコードを見て下さい。
恐らく、BindingFlags の下に波線が表示されているかと思います。


よほど古いバージョンの VB をお使いで無い限りは、
その波線部をクリックすることで、エラーを修正するためのオプションが
表示されるかと思います。その指示に従ってみてください。
(提示される修正内容は Visual Studio のバージョンによって異なります)


それで回復しないようであれば、改めて質問してみてください。
引用返信 編集キー/
■81648 / inTopicNo.9)  Re[4]: 超初歩的な質問ですがButtonの表示について
□投稿者/ Azulean (728回)-(2016/10/21(Fri) 22:39:26)
望む形になるかはわかりませんが、CheckBox で Appearance プロパティを Button にするとか。
http://kuroeveryday.blogspot.jp/2014/05/ToggleButton.html
引用返信 編集キー/
■81650 / inTopicNo.10)  Re[4]: 超初歩的な質問ですがButtonの表示について
□投稿者/ にし (5回)-(2016/10/22(Sat) 10:13:27)
No81646 (魔界の仮面弁士 さん) に返信

> 慣れた人でないと判断できないと思います。
その通りですね、失礼しました。

> 名前空間が通っていないことが原因です。
そのようでした。
教えていただいたことで解決しました。

すごくうれしいです。
ありがとうございました。
解決済み
引用返信 編集キー/
■81651 / inTopicNo.11)  Re[5]: 超初歩的な質問ですがButtonの表示について
□投稿者/ にし (6回)-(2016/10/22(Sat) 10:15:08)
No81648 (Azulean さん) に返信

ありがとうございます。

試してみましたが No81646 で教えていただいた方にしたいと思います。

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -