【VB2008】コントロールの枠線の太さ変更は可能でしょうか

このQ&Aのポイント
  • VB2008で、コントロールの枠線の太さを変更する方法を教えてください。
  • VB2008の開発環境でFixed_3Dの枠線を使用していますが、枠線の太さを変更したいです。
  • 現在のコードでは、ThicknessやBorderというメンバを使用することができず、解決方法を教えてください。
回答を見る
  • ベストアンサー

【VB2008】コントロールの枠線の太さ変更は可能でしょうか

 今晩は,質問させていただきます. どうぞよろしくお願いいたします.  開発環境Vista+VB2008になります. コントロールの枠線をよくFixed_3Dにしておりますが,これの太さを 変更するような方法はあるのでしょうか...?  いろいろと検索いたしまして,(おそらく.NET以外のコードも 検索してしまっておりますがorz),「.Thickness」や「.Border」なるものも 見かけましたが,「メンバではありません」など,うまく使う事ができません.  Classを作ってOverrideでどうにかやる方法とかがあればよいのですが...  もしお詳しい方がいらっしゃいましたら,是非ともアドバイスいただきたく よろしくお願いいたします

  • MKT_
  • お礼率99% (329/330)

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

多くのコントロールが、枠線の描画に関しては OS に丸投げしています。そのため、罫線の幅を変えるには、OS の設定レベルで変更する必要があります。が、これを変更すれば当然、全プログラムにそれが適用されます。 罫線の種類であれば、ウィンドウスタイルを強制的に書き換えることで多少は変化させることができますが、幅は変わらないですね・・・。 自力で枠線を作る方法としては、コントロールをパネルに配置して、コントロールは枠なし、パネルにはコントロールの枠に見えるような描画を施す、という手法があります。 WPFを使えばもっと柔軟に出来ると思いますが、経験がないので説明はできないです。

MKT_
質問者

お礼

 Wizard_Zero様  どうもありがとうございます! >枠線の描画に関しては OS に丸投げしています 知りませんでしたorz Windowsとは独立しているものかと... では教えていただいた >自力で枠線を作る方法としては、~ のような感じで絵を描くしかなさそうですねー...  頑張ってみます!どうもありがとうございました!!

関連するQ&A

  • フォーカスの枠線を太くしたい

    初心者です。環境はvb2010、Vistaです。 コントロールにフォーカスがあったときに表示される水色の枠線 を太くできたらと考えています。 どなたかご存じの方いましたらよろしくお願いします。

  • 枠線が表示されません

    初歩的な質問ですみません。 以下のようなテーブルを組んでいるのですが 枠線が表示されません。 どこがおかしいのでしょうか? 宜しくお願いします。 ==================================HTML================================== <html> <head> <link rel="stylesheet" href="test.css" type="text/css"> </head> <body> <table class="table1"> <tr> <th>左</th> <th>真ん中</th> <th>右</th> </tr> <tr> <td class="blue">1</td> <td class="blue">田中</td> <td class="blue">55</td> </tr> <tr> <td class="white">2</td> <td class="white">鈴木</td> <td class="white">42</td> </tr> <tr> <td class="blue">3</td> <td class="blue">斉藤</td> <td class="blue">20</td> </tr> </table> </body> </html> ==================================CSS================================== /*テーブル全体*/ .table1 { border-collapse: collapse; /* 枠線の表示方法 重ねる */ border: 2px #757575 solid; /* テーブル全体の枠線(太さ・色・スタイル)solid:実線 */ margin-top: 10px; /* 表示位置 */ margin-left: 25px; /* 表示位置 */ } /*テーブルの見出し部分*/ th { font-size:10pt; text-align:left; /*左寄せ*/ color:#888888; /*テキスト色*/ background-color:#B8B8B8; /*背景色*/ border-style: solid; /* 枠の種類 */ border-width: 0px 1px; /* 枠の幅 */ border-spacing: 0; /* 隣のセルとの間隔 */ } /*テーブルのデータ部分*/ td { font-size:10pt; text-align:left; /*左寄せ*/\ border-style: solid; /* 枠の種類 */ border-width: 0px 1px; /* 枠の幅 */ } .blue{ background-color: #CCCCFF; } /* セル色:青 */ .white{ background-color: #FFFFFF; } /* セル色:白 */ /*背景色と文字色*/ body { background-color: #969696; color: #000000; }

    • 締切済み
    • CSS
  • VB6.0のデザイン時 コントロールの移動 Vista

    プログラマです。 VB6.0のデザイン時に配置されたコントロールを矢印キーで移動しようとすると、 他のコントロールにフォーカスがうつってしまい配置を変更できません。 (現在はマウスで配置を移動させています) デザイン時に矢印キーでコントロールの配置位置を移動させる設定などありますか? 開発環境 -VB6.0(SP6) -OS Windows Vista Business SP1

  • VistaでVB6を使おうと思ったらコントロールの移動が…

    VB6を仕事で使用しているのですが、XP環境から、Vistaへ移行し、何とか無事にVB6もセットアップすることが、できたのですが、 実際に作業を始めると、各フォームに配置している、コントロールをマウスで移動させると、めらめらとした動きで、非常にレスポンスが悪く、実際にはあまり効率よく作業できる状態ではありませんでした。 マイクロソフトはVistaでVB6をサポートすると知って、ある程度安心して、移行したのですが…。 この状態を改善する方法をご存知の方がいらっしゃいましたら、ご教授お願いいたします。 VISTA HOME Premium SP1 VisualBASIC6.0EnterpriseEdition VB6SP6B適用済

  • FireFoxでのtable枠線の表示/非表示

    下記HTMLコードは テーブル(TDレベル)の枠線を表示するCSSクラスと 非表示とするCSSクラスを用意し、ボタンを押す事 によりjavascriptでCSSクラスを変更するものです。 <html> <head> <style TYPE="text/css"><!-- table.tclass { border-collapse:collapse; } td.b { border: 1px solid; border-color:#000000; } td.w { border:noe; border-color:#FFFFFF; } --></style> <script Language="JavaScript"><!-- function delLine(elem){ var obj = document.getElementById(elem); obj.className = "w"; } // --></script> </head> <body> <table class="tclass"> <tr> <td class="b" id="td1">Table1</td> <td class="b" id="td2">Table2</td> </td> </tr> </table> <button type='button' onclick='delLine("td2");' >枠線を消す</button><br> </body> </html> 上記のように2つのテーブルセルのうち、右側セルの枠線を 消したいのですが、 右側セルの右枠だけ消えて、残りの枠は表示され たままになります。 因みに onclick='delLine("td1");delLine("td2");' のように、両方のセルともに枠線を消す場合は問題ありません。 また、tableタグのborder-collapse:collapse指定を外しても 成功する事を確認していますが、border-collapse:collapseは できれば指定したいです。 また、FireFox以外ではIE、safari、operaでは問題ありません。 何か対処方法をお分かりの方がおりましたらお教えください。 よろしくおねがいします。

    • ベストアンサー
    • HTML
  • VB.netでコレクションを変更させないようにするには

    C#、VB.net(.net framework 2.0)で開発しております。 FamilyクラスのListフィールド_peopleには外部からの変更操作(Add、Remove等)を許可したくないのですが、 以下のようにReadOnlyのプロパティを設けても、代入操作はできないもののコレクション自体への変更は可能となってしまいます。 ※family.People.Add(mem) 等 IListやICollectionインターフェースをImplementして独自のコレクションを作り、 AddやRemoveメソッド内で例外を投げたりすることも考えたのですが、 そもそもコンパイルを通したくありません。 こういった場合、どのように実装するのが定石でしょうか? 宜しくお願い致します。 以下コード例 Public Class Family Dim _people As List(Of Member) Public ReadOnly Property People() As Member Get Return _people End Get End Property End Class

  • VB.NET ボタン押下で一つ前のコントロールへ

    お世話になります。 VisualStudio2010 InputMan6.0 上記を使用して、VB.NETで開発をしております。 いくつかテキスト・コンボコントロールが並んでいるFormで、ボタンを押下することで それまでカーソルがあったコントロールの一つ前のTabIndexがあるコントロールへ カーソルを遷移させたいのですが、うまく動きません。 SelectNextControlを使ってみても、ボタン押下の段階でボタンがActiveなコントロールと なってしまうため、ボタンの一つ前のコントロールにカーソルが移動してしまいます。 うまい方法はないでしょうか?

  • テーブルの枠線

    IEブラウザのバージョンにより、表示が変わることはわかっているのですが どうしても解決できないので質問させていただきます。 対応ブラウザがIE8からIE11という前提なので、まずはIE8で試してみました。 きれいに表示できました。 が、IE11で表示したら、見出しは枠線が表示されました。 でも、中の罫線が表示されません。(画像添付) IE9、IE10はソフトを入れ直しが必要なので、また未確認です。 <meta>タグを入れてもダメでした。(IE=edge) IE8を捨ててもよいので、IE11で枠線を表示させるにはどうしたらよいのか、 ご教授願えないでしょうか? widthの指定もしているし、border-styleも記述しているつもりですが IE11では何が足りないのか、わかりません。 以下にソースコードを記載しますので よろしくお願いいたします。 ※まだdebug中なので、罫線以外につきましては無視願います。 <html> <head> <style type="text/css"> #midashi { border:2px solid #ffffff; border-collapse:collapse; } #table1 { border:2px solid #3d9f51; border-collapse:collapse; } #table0 { border:2px solid #83ca51; border-collapse:collapse; float:left; margin-right:-3px; } #table1 .td0{ width:15px; height:20px; border: none; text-align:left; font-size:80%; } #table1 .td1{ width:12px; height:20px; border-top-width: 1px; border-top-color = "#3d9f51"; border-top-style = "solid"; border-right-width: 1px; border-right-color = "#aaa"; border-right-style = "dotted"; background-color:#FFFFFF; border-collapse:collapse; } #table1 .td2{ width:12px; height:20px; border-top-width: 1px; border-top-color = "#3d9f51"; border-top-style = "solid"; border-right-width: 1px; border-right-color = "#aaa"; border-right-style = "solid"; background-color:#FFFFFF; border-collapse:collapse; } #table1 .td2bg{ background-color:#83ca51; } #table0 .td3{ width:60px; height:20px; border-bottom: 1px #7f7f7b solid; background-color:#83ca51; border-collapse:collapse; text-align:center; font-size:80%; } #table0 .td3non{ width:60px; height:20px; border-bottom: 1px #7f7f7b solid; background-color:#ffffff; border-collapse:collapse; text-align:center; font-size:80%; } </style> </head> <body> <table id="table0"> <script type="text/javascript"> //**************************************************************************** //--- 番号 for(i=0; i<9; i++){ document.write('<tr>'); if( i == 0){ document.write('<td class="td3non"> </td>') }else{ document.write('<td class="td3">部屋' + i + '</td>') } document.write('</tr>'); } //--- //**************************************************************************** </script> </table> <table id="table1"> <script type="text/javascript"> //**************************************************************************** //--- 見出し document.write('<tr>'); for(j=0; j<48; j++){ // 30分単位の一日分 if( j%2 == 1){ document.write('<td class="td2 td2bg"></td>') // 時間表示無し }else{ document.write('<td class="td0 td2bg">' + (j/2) + '</td>') // 時間表示有り } } document.write('</tr>'); //--- //**************************************************************************** //**************************************************************************** //--- 時間テーブル for(i=0; i<8; i++){ // i:部屋の数 document.write('<tr>'); for(j=0; j<45; j++){ // 30分単位の一日分(48) if( j%2 == 1){ document.write('<td class="td2"></td>') // solid }else{ document.write('<td class="td1"></td>') // dotted } } for(j=0; j<3; j++){ // 30分単位の一日分(48) if( j%2 == 1){ document.write('<td class="td2" style="font-size:50%;text-align:center;">・</td>') // solid }else{ document.write('<td class="td1" style="font-size:50%;text-align:center;">・</td>') // dotted } } document.write('</tr>'); //--- //**************************************************************************** } </script> </table> </body> </html>

    • ベストアンサー
    • CSS
  • コントロールの使い方が分らないのですが

    今VBを使ったアプリケーションを開発していますが、 VBの標準以外のコントロールの使い方や特性が分らず困っています。 使用しているコントロールツールは 「ActiveThreeDPlus」・「InputMan65」・「SPREAD30」の3種類です。 あと帳票ソフトで「Crystal Reports ver8.5」を使っています。 これらの使用方法や特性などが理解できるものがすぐにほしいのですが、 どなたか知っている方いらっしゃいませんでしょうか? どうか宜しくお願い致します。

  • VB6のDataGridコントロールが良く分かりません。

    初めて質問させて頂きます。 検索エンジンやMSDN等を何時間も見ても分からないことがあります。 開発環境はVB6.0で、 ファイルから読み込んだり(今回はcsv)やサブウィンドウから入力した値を メインウィンドウのリストボックスに表示させて保存する等の簡単なプログラムを 作ってと会社の先輩から課題を出され、作りました。 次に、リストボックスの部分をDataGridコントロールに置き換えてと指示されましたが、 色々と調べても一向に進みません。 リストボックスの時は、1行2列といった配置だったので 今回もそれにしようとしましたが、1行から複数行にするやり方が分かりません。 また、DataGridのセルに値を入れる方法も分かりません。 VB.NET(あってますか?)でのやり方はネット上に散見していましたが、 VB6.0では皆無でした。 したいことは以下の2点です。 ・1行複数列を複数行2列にしたい。絵で書くとこんな具合です。 |COL1|COL2|COL3|COL4|COL5|COL6|を |COL1|COL2| |COL3|COL4| |COL5|COL6| ※COLは、Columnの略です。 ・セルに値を入れる(代入ともいう?)。 本当に色々と調べたのですが、目ぼしきものが見当たらず VBを始めたばかりでして不明なことも多く見逃していることもあるかもしれません。

専門家に質問してみよう