DOBON.NETプログラミング道掲示板

■ 「新規作成」から投稿できます。
■ マルチポストされた投稿を見つけたときは、その投稿に返信することによりご報告ください。その際は匿名で投稿し、マルチポストされている場所を併記してください。
■ スパム対策のため、メールアドレスの先頭に"_"という文字が付加されています。
RSS 2.0 RSS 2.0 | RSS 0.91 | 携帯電話用 | 自分専用のアイコンを使用するには | 掲示板への要望 | 管理人に連絡 | お気楽掲示板
■ 24時間以内に作成されたスレッドは New で表示されます。
■ 24時間以内に更新されたスレッドは UpDate で表示されます。

記事リスト ( )内の数字はレス数
UpDateVB.NETでXMLファイルからデータを取得したい(1) | UpDateAddStringの使い方(5) | Nomalhtmlファイルへの関連付け(1) | NomalVS2015 Express インストール時のエラー(7) | Nomal2枚のPictureBoxを合成した上で描画したい(6) | Nomal自作ツールを標準ブラウザ候補に入れるには?(3) | NomalGraphicsUnit.Document使用時に解像度に合わせて位置決めしたい(2) | Nomal文字を円弧に沿って表示させたい(5) | Nomalユーザーコントロールをツールバーに表示できない(7) | Nomal【お知らせ】スマホでも見やすくなりました(0) | NomalVB.NetのWebBrowserでJavaScriptを呼び出したい(2) | Nomalサムネイルを新しい順にファイル名のみで表示したい。(4) | NomalEXCELでクリップボードを使用せずに書式付きでセルをコピー(5) | NomalDataGridView内でコンボボックスの選択をキャンセルする方法(1) | Nomalタブの色を他の処理から変更する方法(2) | Nomal同じデータセット内にテーブルの複製を作る方法(4) | Nomal配列を持つ自作クラスで、入れ替える関数を作成したい。(3) | NomalPowerPointをVBAでPDF化したい(0) | Nomalvs2017のC#で”現在のコンテキストに"Console"という名前は存在しません"と表示される(2) | NomalASP.NET 数分の処理でaspxの応答が無くなる(2) | NomalCSVのTextFieldParser読込時のオリジナル1行データの取得について(2) | NomalC# enum命名規則の抜け道(2) | Nomalマルチスレッドにおける画面の更新(4) | NomalCrystalReport 実行時にレポートエラー(0) | NomalCSVファイルから指定行を1行削除したい(2) | NomalDataGridView内での集計行追加を行いたい(6) | Nomal【VB.net】特殊なキーのコードとイベント(3) | Nomal「 No33447 の投稿について、質問があります」# webbrowserでjqueryのイベントを発生させたい(3) | Nomalwebbrowserでjqueryのイベントを発生させたい(7) | NomalVB.NETでの TCPClient通信をByteのみでしょうか?(3) | Nomal仮想デスクトップのスクリーンキャプチャ(Windows10, C#)(0) | NomalVB.netでPDF-XChange Viewerの印刷設定(2) | NomalExcel オートメーションエラーとなってしまう(1) | NomalPictureBoxで動画を2回目に表示させる際に0除算エラーが起きる。(0) | NomalListViewに動画ファイルのサムネイルを表示する(2) | NomalPictureBoxに動画を表示させた後に静止画を表示させる(3) | Nomal非同期デリゲートとスレッドプール(2) | NomalフォームのボタンがONと同じようにスイッチONでも動作させたい(0) | Nomal複数の図形を重ねて描画するには(4) | NomalSNSへ自動投稿したい(2) | Nomal外部アプリケーションのアクティブ化(0) | Nomal「UDP」65535byteを超える画像データの送信(4) | Nomal画像の中心で回転させたい(3) | NomalPLCとの通信PGMの設計(1) | Nomalディスプレイの認識番号を求めたい(8) | NomalListViewの画像のドラッグアンドドロップ(14) | NomalMaskedTextBoxに丸囲み数字が入力できない(2) | NomalFTPにてリモート サーバーがエラーを返しました: (550) (1) | Nomalエンターキーでのコントロール移動(4) | Nomalメッセージの表示(1) | NomalThreading.Threadで戻り値を取得したい(8) | NomalPOSTとブラウザで動きが違うのはなぜでしょう?(6) | NomalUIスレッド使用中のBeginInvoke(5) | NomalForm起動時の例外スローが発生する原因が知りたい(1) | NomalASP.NET(VB.NET)でMapHubsを利用したい(2) | NomalForm1内のForm2でのTextBox入力がうまくいかない(6) | NomalnpgsqlでのExecuteScalarとExecuteReaderの扱いについて(2) | Nomalすきーむ りすと(2) | Nomalユーザーコントロールで自作のBackColorプロパティを使いたい(3) | NomalDataGridViewのRowLeaveのキャンセルについて(1) | Nomalプロパティウィンドウのカスタマイズ(2) | NomalCSV出力時に対象データバイト数+crlfの2バイト分のNull文字が出力される(4) | NomalIE11のダウンロード通知バーの保存を押したい(2) | Nomalmagick.net c# PDFの総ページ数取得(2) | NomalレジストリCLSIDの検索(4) | Nomalウィルスバスターについての質問(2) | NomalVB6からC#への変換時のエラー(1) | Nomal文字列配列からCheckedListBoxにチェック適用(4) | NomalC# Excelの列名の取得(3) | NomalWinサービスのサービス名をconfig化したい(1) | Nomalバッチで最新の環境変数を取得したい(4) | NomalWin7で開発したソフトがWin10で動かない(2) | Nomalテキストボックスのプロパティno(2) | NomalInternet Explorer Webページ保存のデフォルトフォルダ(1) | NomalASP.NETでネットワーク接続が切れた場合(0) | Nomalvb.net複数行入力テキストでのRETURNでの改行ができない(6) | Nomal中国語OSのFrameworkインストール画面の文字化け(1) | NomalExcelファイル内の画像取り込み(2) | NomalC# npgsqlでの動作(2) | Nomalコンボボックス継承で独自フォームの表示(1) | Nomalあらゆる例外がTargetInvocationExceptionで出力される。(5) | NomalListViewのページは指定できるのでしょうか?(ASP.NETではありません)(2) | Nomal追加したイベントハンドらが動かない。(2) | Nomalマルチディスプレイ環境で任意のモニターに描画したい(5) | NomalC#からのメール送信エラー(2) | Nomalメールの送信結果通知(2) | NomalVS2015,C#・・・別アプリ起動IEの表示ページのURL取得は?(4) | NomalVS2015のListViewにて、行挿入されない(2) | NomalVB.NETからエクセル(アクティブセル)への画像挿入(4) | NomalPowerShellで文字列を変数に変換したい(8) | NomalVisual Studio 2015 のビルドエラー表示のタイミング(2) | Nomalダウンキャストの実装を簡潔に記述したい(3) | Nomal(C#)BitArray同士の比較(1) | Nomalカスタムページサイズでの印刷(0) | Nomalフォームの表示位置を揃えたい(4) | Nomalforループの並列化とUI操作について(1) | NomalSQLをVBでUAC有効未昇格ClickOnceで操作したい(2) | NomalVB6 + Windows7 処理がおちる(3) | NomaltoolStripContainerの中でtoolStrip同士を重ねたい(1) | Nomal画像を見ていただき使っているどのコントローラーが使われているのか教えてください。(3) |



■記事リスト / ▼下のスレッド
■33868 / 親記事)  VB.NETでXMLファイルからデータを取得したい
□投稿者/ J谷 一般人(1回)-(2018/06/22(Fri) 14:37:24)
  • アイコン環境/言語:[Windows7 32bit .NET Framework4.5] 
    分類:[.NET] 

    2018/06/22(Fri) 14:38:35 編集(投稿者)

    初めて投稿させていただきます。

    [環境]
    Windows7 32bit
    VB.NET(2013) .NET Framework4.5

    表題の通り、XMLファイルからのデータ取得方法について
    ご教示ください。

    XMLファイルに下記のようなデータが入っていた場合
    Table Name
    Column Name
    Value
    のデータをどのように、取得したらよいでしょうか?
    取得後、スプレッドなどの表にデータを入れようと
    思っています。




    -<Tables>

    -<Table Name="社員表">

    -<Header>

    <Column Name="No"/>

    <Column Name="社員名"/>

    <Column Name="住所"/>

    <Column Name="年齢"/>

    <Column Name="電話番号"/>

    <Column Name="メール"/>

    </Header>


    -<Row>

    <Value>1</Value>

    <Value>新木</Value>

    <Value>東京</Value>

    <Value>43</Value>

    <Value>123-456</Value>

    <Value>araki@</Value>

    </Row>


    -<Row>

    <Value>2</Value>

    <Value>井上</Value>

    <Value>大阪</Value>

    <Value>35</Value>

    <Value>234-567</Value>

    <Value>inoue@</Value>

    </Row>


    -<Row>

    <Value>3</Value>

    <Value>田中</Value>

    <Value>福岡</Value>

    <Value>32</Value>

    <Value>345-678</Value>

    <Value>tanaka@</Value>

    </Row>


    -<Row>

    <Value>4</Value>

    <Value>鈴木</Value>

    <Value>東京</Value>

    <Value>28</Value>

    <Value>456-789</Value>

    <Value>suzuki@</Value>

    </Row>

    </Table>

    </Tables>




違反を報告
引用返信

▽[全レス1件(ResNo.1-1 表示)]
■33876 / ResNo.1)  Re[1]: VB.NETでXMLファイルからデータを取得したい
□投稿者/ 魔界の仮面弁士 大御所(1113回)-(2018/06/25(Mon) 12:51:04)
  • アイコン
    No33868に返信(J谷さんの記事)
    > XMLファイルに下記のようなデータが入っていた場合
    実際のファイル内容は「-<Tables>」表記ではなく
    「<Tables>」ということで良いでしょうか。
    
    Internet Explorer 等で表示した場合は、
    タグを折りたためるよう - / + が先頭に表示されたりしますが、
    本来のファイルには含まれないはずなので…。
    
    
    > Table Name
    > Column Name
    > Value
    > のデータをどのように、取得したらよいでしょうか?
    
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim xml = XDocument.Load("C:\TEST\sample.xml")
        Dim ds As New DataSet()
        For Each tableNode In xml.<Tables>.<Table>
            Dim tbl As DataTable = ds.Tables.Add(tableNode.@Name)
            For Each colNode In tableNode.<Header>.<Column>
                tbl.Columns.Add(colNode.@Name, GetType(String))
            Next
            For Each rowNode In tableNode.<Row>
                tbl.Rows.Add(rowNode.<Value>.Select(Function(n) n.Value).ToArray())
            Next
        Next
        DataGridView1.DataSource = ds.Tables(0)
    End Sub

違反を報告
引用返信

■記事リスト / レス記事表示 → [親記事-1]



■記事リスト / ▼下のスレッド / ▲上のスレッド
■33869 / 親記事)  AddStringの使い方
□投稿者/ K-1 一般人(10回)-(2018/06/23(Sat) 22:46:04)
  • アイコン環境/言語:[VB2017] 
    分類:[.NET] 

    VB.NET2017のGrahicPathの練習に以下のようなコードを書きました。

    Private Sub PictureBox1_Paint(sender As Object, e As PaintEventArgs) Handles PictureBox1.Paint

    Dim gpath As New GraphicsPath
    gpath.AddString("ABCDEFG", Me.Font.FontFamily, 0, 16, New Point(0, 0), StringFormat.GenericDefault)
    e.Graphics.DrawPath(Pens.Black, gpath)

    End Sub

    画面に文字列が出るのはいいんですが「ふちどり」になってしまいます。
    「ふちどり」ではなく普通に文字を表示するにはAddStringのどこに何を設定すればいいのでしょうか?

違反を報告
引用返信

▽[全レス5件(ResNo.1-5 表示)]
■33870 / ResNo.1)  Re[1]: AddStringの使い方
□投稿者/ Azulean 大御所(499回)-(2018/06/24(Sun) 06:55:05)
  • アイコンNo33869に返信(K-1さんの記事)
    > 画面に文字列が出るのはいいんですが「ふちどり」になってしまいます。
    > 「ふちどり」ではなく普通に文字を表示するにはAddStringのどこに何を設定すればいいのでしょうか?

    Graphics のメソッドは Draw で縁を描き、Fill で塗りつぶしという考え方になっています。
    今回、DrawPath しか呼んでいないので、縁取りのように見えるのでしょう。

    https://dobon.net/vb/dotnet/graphics/drawoutlinestring.html
違反を報告
引用返信
■33871 / ResNo.2)  Re[2]: AddStringの使い方
□投稿者/ K-1 一般人(11回)-(2018/06/24(Sun) 10:31:07)
  • アイコン2018/06/24(Sun) 10:31:38 編集(投稿者)
    2018/06/24(Sun) 10:31:29 編集(投稿者)

    No33870に返信(Azuleanさんの記事)
    むーん、すると必ず太目の文字になってしまい、GraphicにDrawStringで描くような体裁の文字は描けないということでしょうか。

    ありがとうございます。
解決み!
違反を報告
引用返信
■33873 / ResNo.3)  Re[3]: AddStringの使い方
□投稿者/ どうでもいい 一般人(1回)-(2018/06/24(Sun) 11:42:36)
  • アイコン2018/06/24(Sun) 11:43:38 編集(投稿者)

    No33871に返信(K-1さんの記事)

    FontやFontStyleゃPenの太さを変えても?
解決み!
違反を報告
引用返信
■33874 / ResNo.4)  Re[4]: AddStringの使い方
□投稿者/ K-1 一般人(13回)-(2018/06/24(Sun) 13:12:34)
  • アイコンNo33873に返信(どうでもいいさんの記事)

    フォントは強調指定なし、ペン太さもデフォルトです。

違反を報告
引用返信
■33875 / ResNo.5)  Re[5]: AddStringの使い方
□投稿者/ どうでもいい 一般人(2回)-(2018/06/24(Sun) 14:07:23)
  • アイコンNo33874に返信(K-1さんの記事)

    だからそれを変更するとどうなるの?ってことなんだけど…

    それとDrawPathは文字の輪郭線を中心にPenの太さで線を引く、FillPathは輪郭線の
    内側をBrushで塗りつぶす、なので両方やると当然輪郭線の外側の分太くなるのだけど
違反を報告
引用返信

■記事リスト / レス記事表示 → [親記事-5]



■記事リスト / ▼下のスレッド / ▲上のスレッド
■33866 / 親記事)  htmlファイルへの関連付け
□投稿者/ 滋 一般人(5回)-(2018/06/20(Wed) 12:39:38)
  • アイコン環境/言語:[Win7/10 VB.NET] 
    分類:[.NET] 

    下で自作ツールを標準ブラウザの候補に登録する事が出来たため、最初の目的は達成できました。(ありがとうございます)
    欲が出てhttpプロトコルとhtmlファイルへの関連付けもツールから出来たらと、考えています。
    httpプロトコルの方はHKCU以下のhttp/UserChoiceを変更する事で実現できましたが、htmlファイルへの関連付け変更ができません。
    コンパネで関連付けを変えた時にHKCU以下の.html/UserChoice(※1)が変化する事はわかったのですが、ここはツールで変更する事ができません。
    お知恵をお貸しください。
    ※1 HKCU/software/Microsoft/Windows/CurrentVersion/Explorer/FileExts/.html/UserChoiceのProgid
違反を報告
引用返信

▽[全レス1件(ResNo.1-1 表示)]
■33867 / ResNo.1)  Re[1]: htmlファイルへの関連付け
□投稿者/ Azulean 大御所(498回)-(2018/06/21(Thu) 05:51:08)
  • アイコンNo33866に返信(滋さんの記事)
    > コンパネで関連付けを変えた時にHKCU以下の.html/UserChoice(※1)が変化する事はわかったのですが、ここはツールで変更する事ができません。

    方法はありません。
    できないように Microsoft が意図的に変更しているためです。

    Adobe Reader であれば、標準の GUI を使って変更させるために入り口となるダイアログを表示したり、このボタンを押して設定して欲しいと誘導したりと、いろいろと工夫している現状があります。
違反を報告
引用返信

■記事リスト / レス記事表示 → [親記事-1]



■記事リスト / ▼下のスレッド / ▲上のスレッド
■33456 / 親記事)  VS2015 Express インストール時のエラー
□投稿者/ F-Ruthin 一般人(1回)-(2016/08/17(Wed) 17:46:32)
  • アイコン環境/言語:[VisualStudio2015 Express] 
    分類:[.NET] 

     
    VisualStudio Express 2015
    for Windows Desktop について。
    これをインストールした所、
    インストール完了直後に、
    添付ファイルのようなエラーが発生しました。

    インストール先(私のPC)の環境は、
    Windows7のSP1で、64ビットです。

    添付ファイルのエラーが発生した理由は、
    インストーラーが、
    Windows10関係?? のモジュールを
    インストールしようとしたからでしょうか??

    このまま、このVisualStudioでアプリを開発しても支障はないでしょうか??

    どなたか 教えていただければと思います。
    よろしくお願いいたします。



392×264 => 250×168
イメージ
vs2015_express_err.png
/17KB
違反を報告
引用返信

▽[全レス7件(ResNo.3-7 表示)]
■33460 / ResNo.3)  Re[3]: VS2015 Express インストール時のエラー
□投稿者/ Azulean 大御所(473回)-(2016/08/19(Fri) 06:40:11)
  • アイコンNo33459に返信(F-Ruthin さんの記事)
    > ログファイルに関しては、
    > 900KBの情報が出力されているので、
    > とりあえず、現時点では、本掲示板に載せる事は控えています。

    失敗している Windows SDK 周りのログと思われる部分で error が出ている行の前後、数十行を抜き出せれば、次につながるかもしれません。

    ただ、パス、マシン名などの個人情報などが含まれるかもしれないので貼り付ける前にはざっと眺めておいて、必要なところは伏せ字か、削るかしてくださいね。
違反を報告
引用返信
■33825 / ResNo.4)  Re[4]: VS2015 Express インストール時のエラー
□投稿者/ matsuzaki 一般人(1回)-(2018/03/07(Wed) 14:04:05)
  • アイコンwindows7環境にvisual studio 2015をインストールしたところ、セットアップは完了しました。ただし、すべての機能が適切にインストールされてない可能性があります。製品の機能をフルに使用するには以下の問題を修正してください。詳細については、一般的な問題および回避策のリストを確認するか、ログファイルをご覧ください。

    Windows 10 SDK(10.0.14393)
    インストーラが失敗しました。インストール中に致命的なエラーが発生しました。エラーコード:-2147023293

    が表示されました。どう対応すべきでしょうか?また、Windows 10 SDKは、開発するにあたってどういう場合に使用するものですか?ちなみに、開発言語はC言語です。
違反を報告
引用返信
■33829 / ResNo.5)  Re[5]: VS2015 Express インストール時のエラー
□投稿者/ 管理人 大御所(1533回)-(2018/04/11(Wed) 03:05:13)
  • アイコンNo33825に返信(matsuzakiさんの記事)

    検索してみたところ、以下のような記事を見つけました。

    Visual Studio 2015 と Windows 10 SDK のインストールで エラー「2147287038(0x80030002) 」が出る - Qiita
    https://qiita.com/IAMU/items/98f8d5951302b762814d

    この記事によると、解決法は以下の通りです(そのまま引用させていただきます)。

    1.Visual Studio 2015 Update3 のアンインストール
    2.Windows 10 SDK(10.0.10586.212) と Visual C++ 2015 用の共通ツール にチェックを入れて、Visual Studio 2015 Update3をインストール
    3.Windows 10 SDK(10.0.14393.33) と Visual C++ 2015 用の共通ツール にチェックを入れて、変更インストール (なぜか、Visual C++ 2015 用の共通ツールのチェックが無かったため再度チェック)

    この解決法がお役に立つことをお祈りしております。

    最後に、この掲示板のルールについて確認させてください。matsuzakiさんの No33825 のご投稿は、これまでの投稿と比べ、新しい情報がなく、スレッド上げが目的と思われても仕方がないように見えます。この掲示板では、スレッドを上げる目的の投稿は禁止していますので、今後はお気を付けください。なお掲示板のルールは、以下のページにあります。

    https://dobon.net/vb/bbs/index.html
違反を報告
引用返信
■33862 / ResNo.6)  Re[6]: VS2015 Express インストール時のエラー
□投稿者/ ピエロ 一般人(1回)-(2018/06/19(Tue) 16:29:33)
  • アイコン> 最後に、この掲示板のルールについて確認させてください。matsuzakiさんの No33825 のご投稿は、これまでの投稿と比べ、新しい情報がなく、スレッド上げが目的と思われても仕方がないように見えます。この掲示板では、スレッドを上げる目的の投稿は禁止していますので、今後はお気を付けください。なお掲示板のルールは…

    No33825には挨拶が書かれていないので、唐突な感じがしますが、
    多分、エラー表示内容を示した書き込みなのだと思いますので、
    一応、新しい情報の投稿と言えるのではないでしょうか。
違反を報告
引用返信
■33864 / ResNo.7)  Re[7]: VS2015 Express インストール時のエラー
□投稿者/ 管理人 大御所(1537回)-(2018/06/20(Wed) 03:09:22)
  • アイコンNo33862に返信(ピエロさんの記事)

    > No33825には挨拶が書かれていないので、唐突な感じがしますが、
    > 多分、エラー表示内容を示した書き込みなのだと思いますので、
    > 一応、新しい情報の投稿と言えるのではないでしょうか。

    一番初めの投稿( No33456 )に添付されたスクリーンショットに、全く同じエラーメッセージがありますので、たとえそれをテキスト化する意味があったとしても、新しい情報というには弱いように思えます。もしテキスト化していただけたのであれば、そのようにお書き添えいただきたかったです。

    ただ、この投稿がルール違反だと断定したわけではなく、あくまで注意させていただいただけですので、その点はご理解ください。
違反を報告
引用返信

■記事リスト / レス記事表示 → [親記事-7]



■記事リスト / ▲上のスレッド
■33851 / 親記事)  2枚のPictureBoxを合成した上で描画したい
□投稿者/ K-1 一般人(5回)-(2018/06/10(Sun) 11:51:28)
  • アイコン環境/言語:[VB.NET(2017)] 
    分類:[.NET] 

    VB.NET(2017)を使用しています。
    PictuteBoxの画像を合成し、その上で描画を行いたく、テストとして3枚のPictureBoxを同じサイズ(640x640)で作成し、以下のようなコードを作成しました。
    
    Public Class Form1
        Private Grp1 As Graphics
        Private GrpWrite As Graphics
        Private GrpBack As Graphics
        Private Bmp1 As Bitmap
        Private BmpWrite As Bitmap
        Private BmpBack As Bitmap
    
    
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            'グラフィック初期化
            '表示領域
            Bmp1 = New Bitmap(640, 640)
            ViewPictureBox.Image = Bmp1
            Grp1 = Graphics.FromImage(Bmp1)
    
            '描画領域
            BmpWrite = New Bitmap(640, 640)
            WritePictureBox.Image = BmpWrite
            GrpWrite = Graphics.FromImage(BmpWrite)
    
            '背景領域
            BmpBack = New Bitmap(640, 640)
            BackPictureBox.Image = BmpBack
            GrpBack = Graphics.FromImage(BmpBack)
    
            'クリア
            GrpBack.Clear(Color.White)
            GrpWrite.Clear(Color.White)
    
            '背景領域描画
            GrpBack.DrawLine(New Pen(Color.Red, 1), 0, 0, 640, 640)
    
            '描画領域描画
            GrpWrite.DrawLine(New Pen(Color.Black, 1), 640, 0, 0, 640)
    
            '背景領域と描画領域を合成して表示領域に表示
            BmpWrite.MakeTransparent(Color.White)       '透明化設定
            Grp1.DrawImage(BmpBack, 0, 0, 640, 640)
            Grp1.DrawImage(BmpWrite, 0, 0, 640, 640)
    
            '表示領域描画
            Grp1.DrawLine(New Pen(Color.Black, 1), 320, 0, 320, 640)
        End Sub
    
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            '描画領域描画
            GrpWrite.DrawLine(New Pen(Color.Black, 1), 0, 320, 640, 320)
    
            BmpWrite.MakeTransparent(Color.White)
            Grp1.DrawImage(BmpBack, 0, 0, 640, 640)
            Grp1.DrawImage(BmpWrite, 0, 0, 640, 640)
    
        End Sub
    End Class
    
    背景領域と描画領域表示が合成され、表示領域に表示されることまでは出来ました。
    PushButton押下時にさらに描画領域に横線を書き足して表示領域に表示させたいのですが、横線が出ません。
    
    透明化設定が悪さをしているのかと思って透明化設定2箇所をコメントにして見ましたが状況は変わりませんでした。
    

違反を報告
引用返信

▽[全レス6件(ResNo.2-6 表示)]
■33853 / ResNo.2)  Re[2]: 2枚のPictureBoxを合成した上で描画したい
□投稿者/ K-1 一般人(7回)-(2018/06/10(Sun) 18:23:18)
  • アイコン2018/06/10(Sun) 18:25:59 編集(投稿者)
    2018/06/10(Sun) 18:25:45 編集(投稿者)

    No33852に返信(Azuleanさんの記事)
    PushButton処理の最後に
    ViewPictureBox.Invalidate()
    を付け加えてみましたが、効果ありませんでした。

    いろいろ実験していて気がついたのですが、PushButtonの中で行っている
    '描画領域描画
    GrpWrite.DrawLine(New Pen(Color.Black, 1), 0, 320, 640, 320)
    が、そもそも描画できていないようです。
    そこで、そこのあとに
    WritePictureBox.Invalidate()
    を付け加えてみたのですが、描画自体行われていませんでした。

    試しにForm1_Loadで行っている
    BmpWrite.MakeTransparent(Color.White) '透明化設定
    を削除したところ(合成はダメになりましたが)横線描画は正常に動作しました。

    やはりなにか透明化の副作用とかあるんでしょうか・・・

違反を報告
引用返信
■33854 / ResNo.3)  Re[3]: 2枚のPictureBoxを合成した上で描画したい
□投稿者/ Azulean 大御所(497回)-(2018/06/10(Sun) 20:17:05)
  • アイコンNo33853に返信(K-1さんの記事)
    > 試しにForm1_Loadで行っている
    > BmpWrite.MakeTransparent(Color.White) '透明化設定
    > を削除したところ(合成はダメになりましたが)横線描画は正常に動作しました。
    >
    > やはりなにか透明化の副作用とかあるんでしょうか・・・

    そのようです。
    改めて MakeTransparent のソースコードを調べてみると、このメソッドは呼び出すと、Bitmap クラスの内部のネイティブインスタンスが差し替わるようです。

    https://referencesource.microsoft.com/#System.Drawing/commonui/System/Drawing/Bitmap.cs,705fe8a7fda4a24f,references

    以降、その Bitmap に対して Graphics 操作をしたいのであれば、Graphics.FromImage で作り直してください。

    なお、Graphics.FromImage で得た Graphics は持ち続けるのではなく、不要になった段階で Dispose するというように、「必要なときに都度確保する」考え方をした方が良い性質のものです。
違反を報告
引用返信
■33855 / ResNo.4)  Re[4]: 2枚のPictureBoxを合成した上で描画したい
□投稿者/ K-1 一般人(8回)-(2018/06/10(Sun) 21:13:09)
  • アイコンNo33854に返信(Azuleanさんの記事)
    以下のようにしてみましたところ、想定どおりの画面が出るようになりました。

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    '描画領域描画
    GrpWrite = Graphics.FromImage(BmpWrite)
    GrpWrite.DrawLine(New Pen(Color.Black, 1), 0, 320, 640, 320)
    WritePictureBox.Invalidate()

    Grp1.DrawImage(BmpBack, 0, 0, 640, 640)
    Grp1.DrawImage(BmpWrite, 0, 0, 640, 640)

    ViewPictureBox.Invalidate()
    End Sub

    なんとなくGraphicsの初期化は最初にやっとけばいいかと思っていたのですが、必要に応じて再定義が必要な性格のものだったのですね。
    ありがとうございました。
解決み!
違反を報告
引用返信
■33856 / ResNo.5)  Re[5]: 2枚のPictureBoxを合成した上で描画したい
□投稿者/ 魔界の仮面弁士 大御所(1111回)-(2018/06/12(Tue) 11:17:19)
  • アイコンNo33855に返信(K-1さんの記事)
    > GrpWrite = Graphics.FromImage(BmpWrite)
    > GrpWrite.DrawLine(New Pen(Color.Black, 1), 0, 320, 640, 320)
    ここは
     Using GrpWrite = Graphics.FromImage(BmpWrite)
      GrpWrite.DrawLine(Pens.Black, 0, 320, 640, 320)
        :
     End Using
    もしくは
     Using GrpWrite = Graphics.FromImage(BmpWrite), P As New Pen(Color.Black, 1)
      GrpWrite.DrawLine(p, 0, 320, 640, 320)
        :
     End Using
    にすべきかと思います。

    Graphics, Bitmap, Font, Pen, Brush などは IDisposable ですので、
    「Graphics.FromImage」や「New Pen」で生成したオブジェクトは、
    使用後直ちに Dispose を呼び出すようにすることが望ましいです。


    ただし Pens.Black や、Paint イベントの e.Graphics などは Dispose しないようにします。
    (これらは共有物であり、自分で生成したオブジェクトではないため)
解決み!
違反を報告
引用返信
■33861 / ResNo.6)  Re[6]: 2枚のPictureBoxを合成した上で描画したい
□投稿者/ K-1 一般人(9回)-(2018/06/16(Sat) 10:45:53)
  • アイコン2018/06/16(Sat) 10:46:15 編集(投稿者)

    No33856に返信(魔界の仮面弁士さんの記事)
    Grahicsは後生大事にとっておくモノでもないということなんですね。
    ありがとうございます。
解決み!
違反を報告
引用返信

■記事リスト / レス記事表示 → [親記事-6]






Mode/  Pass/


- Child Tree -

2018/06/25(Mon) 13:07:47 に作成されたキャッシュを表示しています。
生のデータを表示する | キャッシュを最新にする