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

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

記事リスト ( )内の数字はレス数
Nomalフォントに登録されていない文字の検出(1) | Nomaloledbでdatatableを取得するときにエラーになる(1) | NomalDataGridViewの複数行選択で歯抜け選択を無効にしたい(2) | Nomal証券会社へのログイン(1) | Nomalユーザーフォームに埋め込んだAutoCADの変化を捉える(0) | Nomalシステムドライブ以外へのページング設定が反映されない(5) | Nomalブラウザでコピーした透過PNGを貼り付けたい(4) | Nomalforeachでループ回数を取得(2) | Nomalbitmapが保存できない(2) | Nomal特定ピクセルで画像を読み込みたい(2) | NomalDataGridViewでAlt+Enterで改行したい(2) | Nomal全角シフト中にアクセスキーが効かない(5) | NomalDataAdapter.Updateで構文エラー(6) | Nomal抽象クラスで実装したクラスの情報を知る(3) | NomalProcessクラスからbatファイル実行後、KILLできない(2) | Nomal画面遷移(モーダルとモードレス)(2) | Nomal兆億万表記の文字列を数値に変換できる?(3) | NomalGetDirectoriesでルートを指定するとエラーになる(3) | NomalLinqにおける明示的型指定の方法(3) | Nomal2つのradの数値から1つの角度を求めるコードを改善できますか?(C++)(2) | Nomalコンソールアプリで、WebView2の利用(2) | NomalEntity Frameworkは、使えるか?(2) | Nomalデータベースからのテーブル名一覧の効率的な取得方法(3) | NomalC#のlong型でオーバーフローになる(2) | Nomal正規表現のパターン表記方法(2) | NomalWebView2によるスクレ―ピング(4) | Nomalこういた物を作れますか?(2) | Nomalツールボックスにtableadapterが表示されない(1) | NomalC# Chart X軸上のグラフ表示(3) | NomalVB.NETでBluetoothデバイスの電池残量を取得する方法(3) | Nomalクリスタルレポート 明細部のサブレポート(0) | Nomal重なったPictureBox同士を透過する方法(7) | NomalWindowsフォームデザイナについて(3) | NomalVB.NETからcmdでpingを実行した時の結果(5) | Nomalvb.netでExcelファイル操作(7) | Nomalvb.netでのExcelファイルそうさ(2) | Nomalキーボード+バーコードでキーボード入力を無効にしたい(6) | Nomalファイルとして配置したマニフェストを優先したい(2) | NomalTabPageの背景色(5) | NomalVB2022でクリスタルレポートが開けない(2) | NomalC#でJpeg圧縮のTiffファイルを作成したい(4) | Nomalエクセルのみ監視ができない(2) | NomalDataGridViewのVirtualModeを有効した場合の実装方法(4) | NomalExcelの数値 -> 日付みたいな関数?(2) | NomalDrawstringでの透過文字作成(3) | Nomaljumbo icon(256x256)が存在するか知る方法(6) | NomalSpinWait()を使う理由(2) | Nomalantecedentってなんですか?(2) | Nomalワンタイムパスワードのサイトに自動ログインしてアクセストークンを得る(3) | Nomalstyle.displayだと効率悪いから違うやり方をしたいです。(5) | Nomalテーブルを順番通りに直すプログラムを外部で読み込めるようにしたいです。(4) | NomalJSONの複雑な入れ子内部の値を取りたい。(3) | Nomalグリッド表示レコードをJSONに変換(5) | Nomalシステム時計の設定(3) | NomalSeleniumで開いているページのTableを編集したい(5) | Nomalソケット通信入門 ひらがな(4) | NomalVisual Basicでエラーが出る(3) | Nomalインストーラにて、ローミングフォルダにファイルを配置したい(0) | NomalRGB値の所得(2) | NomalVB.net からAccessDBへの接続(2) | Nomal時間変数(文字列)の扱い(4) | Nomal画像のスクロール(6) | Nomalタイマーの一括処理(6) | NomalTreeViewとDataGridViewのスクロールを同期(シンクロ)させたい(4) | NomalTreeViewの現在位置とDataGridViewの現在位置を合わせたい(7) | Nomalフォームのリサイズ時にDataGridViewが再描画されない(4) | NomalPDFをフォーム上で表示させる方法につきまして(4) | NomalPictureBoxの画像を連続保存(11) | NomalテキストボックスのValidatingイベントよりも先に発生するボタン発生イベントは何でしょう?(2) | Nomal継承元フォームで各フォームのボタン動作を検知したい(3) | NomalWindowsエクスプローラからのドラッグ&ドロップ(2) | Nomalラジオボタンの一括設定(7) | Nomalクリックイベントでexeを作成できるか(2) | Nomal作成した白黒画像をWordに貼り付けてから「図として保存」(8) | Nomalアセンブリ情報が載らない(1) | NomalRichTextBoxのテキストをpictureBOXへ(12) | Nomalc#で日付型の定義の仕方で質問があります。(2) | Nomal先頭に空白(スペース)があるファイルを読み込んでRichTextBoxへ書き出すとスペースが削除える(6) | NomalExcel Com オブジェクトの増殖(13) | Nomal二次元マップから値の取得(1) | NomalアプリでHDMIへ出す解像度を変えたい(4) | NomalDataGridViewのドロップダウンリストの表示と選択後の値を分けたい(1) | Nomal列車の時間ごとの位置情報を表示したいです。(2) | Nomal画像の中心を基点に回転(4) | NomalDataGridViewの行ヘッダーに行番号を表示した時のエラー(4) | NomalタッチキーボードでIMEを自動で切替えたい(6) | NomalVSTOによるエクセルアドインのインストーラーでのアップデート(1) | NomalMP4動画を再生する方法について(5) | NomalVB.NetでVB6.0と同じFontを指定しても同様に印刷されない(9) | NomalLabelで文字単位の背景色(7) | NomalLableのカラー色を文字変数から変更したい(5) | NomalUrlにアクセスするとダウンロードされるファイルを捕まえる(2) | Nomalタブレット等でスワイプによるスクロールを実装(2) | NomalTEXTBOXのプロパティを文字列に(7) | NomalPDFをフォーム上で表示させる方法につきまして(6) | NomalChart X軸上の描画を切り替えたい(0) | NomalRichTextBoxへのドラッグ&ドロップしたExcelファイルの扱い(3) | Nomal特定のPCだけ発生する「パディングは無効なので削除できません」のエラーの原因(6) | NomalDataGridViewの特定セルにボタンを配置する方法(5) |



■記事リスト / ▼下のスレッド
■35487 / 親記事)  vb.netでのExcelファイルそうさ
□投稿者/ 独学学生 一般人(1回)-(2023/08/18(Fri) 19:37:57)
  • アイコン環境/言語:[Windows10] 
    分類:[.NET] 

    vb.netで下記プログラムを実行するとバックグラウンドプロセスにタスクが必ず残ってしまいます。
    フォームアプリを終了するとプロセスが消えるのですがバックグラウンドプロセスに残らない方法はありますか?

    private sub btn作成_Click(sender as object,e as eventargs)handles btn作成.click
    If txtpath.text =“” then
    exit sub
    end if

    btn作成.enabled =false

    dim str as string =“”
    dim strcount =0

    dim ex as new
    Microsoft.office.interop.Excel.application
    dim sh as Microsoft.office.interop.Excel.worksheet
    dim wb as Microsoft.office.interop.Excel.workbook
    dim range as Microsoft.office.interop.Excel.range

    For rw as integer =0 to dgv.rowcount -1
    if dgv.rows(rw).cells(“選択”).value=1 then
    str=dgv.row(rw).cells(“品名”).value & vbcrlf
    str &= dgv.row(rw).cells(“数量”).value & vbcrlf
    str &= dgv.row(rw).cells(“単位”).value & vbcrlf

    if strcount =0 then
    wb=ex.workbooks.open (txtpath.text)
    sh=ex.worksheets(“発注”)

    dim strarry() as string =str.split({environment.newline},stringsplitoptions.none)
    dim arrycount =0

    range = sh.range(“B” & 5 + strcount & “:I” & 5 + strcount)

    for col as integer =1 to range.columns.count
    range.cells(1,col).value =strarry(arrycount)
    system.runtime.InteropService.Marshal.release comobject(range.cells(1,col))
    arrycount =arrycount + 1
    next

    strcount =strcount + 1

    end if
    next

    wb.save()
    we.close(false)
    ex.quit()

    system.runtime.InteropService.Marshal.release comobject(range)
    system.runtime.InteropService.Marshal.release comobject(sh)
    system.runtime.InteropService.Marshal.release comobject(wb)
    system.runtime.InteropService.Marshal.release comobject(ex)

    Range=nothing
    Sh=nothing
    Wb=nothing
    Ex=nothing

    gc .Collect()
    gc.waitforpendingfinalizers()

    btn作成.enabled =true

    Msgbox(“作業完了”)
    end sub

違反を報告
引用返信

▽[全レス2件(ResNo.1-2 表示)]
■35488 / ResNo.1)  Re[1]: vb.netでのExcelファイルそうさ
□投稿者/ Hongliang 大御所(644回)-(2023/08/18(Fri) 20:11:07)
  • アイコン> wb=ex.workbooks.open (txtpath.text)
    Workbooksオブジェクトが解放漏れ
    > for col as integer =1 to range.columns.count
    columnsであるRangeオブジェクトが解放漏れ
    > range.cells(1,col).value =strarry(arrycount)
    cells(,)が返すRangeオブジェクトが解放漏れ
    他にもあるかもしれませんがとりあえず目についただけ。
    hoge.fuga.piyoのようにピリオドが1文に2個存在してたら漏れてると考えたほうがいいです。

    > system.runtime.InteropService.Marshal.releasecomobject(range.cells(1,col))
    意味がないです。
    上と合わせてrange.cells(,)を2回取って1回分だけ解放している計算です。
    取得したオブジェクトは変数に確保しておき、それに対してReleaseComObjectする必要があります。

    まともにReleaseComObjectを考えると正直切りがないんで、Excel操作だけを別のexeとして作成し、そっちに全部任せちゃうってのもありかもしれませんね。
    DataGridのデータを読み取って、いったんファイルに書き込んで、操作用exeはファイルから読み込んでExcelをいじる、みたいな。

    あとは、単純にセルの中身をいじるだけならClosedXmlみたいなライブラリを使用するとか。
違反を報告
引用返信
■35489 / ResNo.2)  Re[1]: vb.netでのExcelファイルそうさ
□投稿者/ KOZ 一般人(22回)-(2023/08/18(Fri) 20:16:52)
  • アイコンNetOffice Framework を使ったらどうでしょう?
    https://netoffice.io/

違反を報告
引用返信

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



■記事リスト / ▼下のスレッド / ▲上のスレッド
■35479 / 親記事)  キーボード+バーコードでキーボード入力を無効にしたい
□投稿者/ たろう 一般人(4回)-(2023/08/04(Fri) 10:03:12)
  • アイコン環境/言語:[windows11/Visual Studio 2022/C#] 
    分類:[.NET] 

    バーコードを利用したシステムで、バーコードから情報を読みこんでいるときにキーボードを触るとバーコードから読み込んだ文字列の間に文字が入ってしまいます。

    バーコードはキーボードエミュレーションのため上記は仕方がないのですが、なにか対策をしなければいけません。

    バーコード入力時は特定のテキストボックスにフォーカスがあるので、その時だけキーボードを無効にしてバーコードのみを有効にするような事ができれば良いのですが・・・。

    なにか手だてはないでしょうか。


違反を報告
引用返信

▽[全レス6件(ResNo.2-6 表示)]
■35481 / ResNo.2)  Re[2]: キーボード+バーコードでキーボード入力を無効にしたい
□投稿者/ たろう 一般人(5回)-(2023/08/04(Fri) 13:48:31)
  • アイコンNo35480に返信(魔界の仮面弁士さんの記事)
    > そういった恐れのある環境では、
    > HID エミュレート型ではなく、
    > Serial 型の製品が採用されます。

    そうですよね・・・。
    いえ、まったくおっしゃる通りです。
    このバーコードもキーボードエミュレーションではないモードを持っているようですが
    元請けからできるだけいまの仕組みを変えたくないと言われている状況で何か方法がないか検討しておりました。


    > なお、複数のキーボードが入力されているケースなどでは、
    > SharpDX.RawInput を使うことで、どちらのキーボードの
    > キーが押されたのかを拾うことはできていますが、

    なるほど、キーボードが2つある場合は判断ができるのですね。
    バーコードでも可能かどうかは分かりませんが、参考にさせていただきます。


違反を報告
引用返信
■35483 / ResNo.3)  Re[1]: キーボード+バーコードでキーボード入力を無効にしたい
□投稿者/ とくま 一般人(3回)-(2023/08/04(Fri) 20:37:31)
  • アイコンNo35479に返信(たろうさんの記事)
    ざっくり検索して内容検証してないですが、ウィンドウズメッセージを解析する方向なら
    RAWINPUTHEADERの hDeviceが違うんじゃないかみたいな話とか
    https://teratail.com/questions/215793
    C++の分野だとか、デバイスドライバを自分で作るような話という方向の話はあるようです。

    本音は、
    バーコードリーダーが壊れたときとか、キーボード入力での代替作業が必要となるトラブルは
    必ず起こるので、そのような仕様自体、避けますけどね。現場に直接言われたなら、
    『USB端子をPCの前面に配置しますので、キーボード入力を避けたい場合は、物理的に抜く
    運用でどうでしょうか?』って言っちゃうw趣味で開発するならまだしも、費用対効果を考える
    システムでやる内容ではないようにも思います。
違反を報告
引用返信
■35484 / ResNo.4)  Re[3]: キーボード+バーコードでキーボード入力を無効にしたい
□投稿者/ kiku 一般人(1回)-(2023/08/07(Mon) 19:01:16)
  • アイコンNo35481に返信(たろうさんの記事)
    > ■No35480に返信(魔界の仮面弁士さんの記事)
    >>そういった恐れのある環境では、
    >>HID エミュレート型ではなく、
    >>Serial 型の製品が採用されます。
    >
    > そうですよね・・・。
    > いえ、まったくおっしゃる通りです。
    > このバーコードもキーボードエミュレーションではないモードを持っているようですが
    > 元請けからできるだけいまの仕組みを変えたくないと言われている状況で何か方法がないか検討しておりました。
    >
    >
    >>なお、複数のキーボードが入力されているケースなどでは、
    >>SharpDX.RawInput を使うことで、どちらのキーボードの
    >>キーが押されたのかを拾うことはできていますが、
    >
    > なるほど、キーボードが2つある場合は判断ができるのですね。
    > バーコードでも可能かどうかは分かりませんが、参考にさせていただきます。

    魔界の仮面弁士さんのコメントが妥当と思います。

    もし、入力文字列の長さが固定であれば、
    文字列長で判定し、キーボードからの入力があった場合
    文字列長が想定より長くなることで、
    判定できるのではと思いました。

違反を報告
引用返信
■35485 / ResNo.5)  Re[2]: キーボード+バーコードでキーボード入力を無効にしたい
□投稿者/ たろう 一般人(6回)-(2023/08/08(Tue) 10:48:27)
  • アイコンNo35483に返信(とくまさんの記事)

    デバイスドライバを作ったりということはさすがに難易度が高いので難しいですね…

    とりあえず、「キーボードを触らないで」とお願いする方向になるかもです。
    (「触ってねぇよ。システムの不具合だろう」って言われそうな気もしますが)

違反を報告
引用返信
■35486 / ResNo.6)  Re[4]: キーボード+バーコードでキーボード入力を無効にしたい
□投稿者/ たろう 一般人(7回)-(2023/08/08(Tue) 10:51:27)
  • アイコンNo35484に返信(kikuさんの記事)
    > 魔界の仮面弁士さんのコメントが妥当と思います。

    そうですね…
    文字列は固定長とは限らず、チェックデジットもないというか、フリーフォーマットのようで、用紙ごとに何が書いてあるかは分からないそうで、なかなか難しいです。

    キーボード入力だけはじくというのは簡単ではなさそうなので、本件はこれにて終了といたします。


解決み!
違反を報告
引用返信

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



■記事リスト / ▼下のスレッド / ▲上のスレッド
■35476 / 親記事)  ファイルとして配置したマニフェストを優先したい
□投稿者/ ぺんたごん 一般人(6回)-(2023/07/20(Thu) 16:15:00)
  • アイコン環境/言語:[Windows 10 .NET 4.6.2] 
    分類:[.NET] 

    ごぶさたしてます。

    タイトル通りなんですが、経緯としては
    他社製ゆえにバイナリをいじれないWinForms使ったexeがあり、
    こちらはプラグインとしてアセンブリdllを作ってる状況です。

    このdllでもWinFormsで画面を出すようになってますが、
    そこにはWPF製のコントロールを配置してます。
    高DPI環境で動かすと、この画面が表示されるタイミングで
    親(exe)も子(dll)もフォームサイズが急に小さくなります。
    exeが高DPI対応してない(文字がぼやけてる)からだと思いますが、
    似た構成の実験exe+実験dllでも同じ現象となりました。

    (実験exeで)埋め込みマニフェストのdpiAwareをtrueにすると
    当然正しく動きますが、そうではない状態で
    diAwareをtrueにした〇〇.exe.manifestを
    exeと同じ場所に配置しても効いていない状態です。

    既にexeにマニフェストが埋め込まれている場合は外部マニフェストファイルは無視されるようですが、
    exeをいじらずにファイルの方を優先させる手段はあるのでしょうか。
    あるいは、exeのマニフェストを(リビルドせずバイナリ操作で)差し替えるツールなどはあるのでしょうか。

    ※exeのファイルプロパティの互換性タブで高DPI対応できるのは知ってますが、
     セットアップ端末全てで実施が必要なので最終手段です

    よろしくおねがいします。
違反を報告
引用返信

▽[全レス2件(ResNo.1-2 表示)]
■35477 / ResNo.1)  Re[1]: ファイルとして配置したマニフェストを優先したい
□投稿者/ 魔界の仮面弁士 大御所(1557回)-(2023/07/20(Thu) 17:36:48)
  • アイコンNo35476に返信(ぺんたごんさんの記事)
    > exeのマニフェストを(リビルドせずバイナリ操作で)差し替えるツールなどはあるのでしょうか。

    Visual Studio の [ファイル]-[開く]-[ファイル] メニューで
    exe を開けば、RT_MANIFEST を直接改竄できます。


    ただし電子署名付の実行ファイルの場合は注意が必要です。

    改竄行為によって、署名検証を通過しなくなるためです(たとえば下記)。
     signtool verify /pa /v X:\target.exe
    その場合、無効な署名のままで放置するのか、それとも
    自前でコードサイニングを埋め直すか…という判断になるかと思います。
違反を報告
引用返信
■35478 / ResNo.2)  Re[2]: ファイルとして配置したマニフェストを優先したい
□投稿者/ ぺんたごん 一般人(7回)-(2023/07/21(Fri) 12:08:10)
  • アイコンNo35477に返信(魔界の仮面弁士さんの記事)
    ありがとうございます。
    exe改変も最終手段としておきます
    ※実際には私はWPFコントロール部品しか作っておらず、
     このdllを作ってるのはさらに別チームで、今回の現象を
     相談されてるだけなのでexeの詳細を知らない状態です

    あと調べていたらVista以降は埋め込まれたマニフェストが優先されるようですね…
    回避手段はなさそう

違反を報告
引用返信

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



■記事リスト / ▼下のスレッド / ▲上のスレッド
■35467 / 親記事)  TabPageの背景色
□投稿者/ くるり 一般人(1回)-(2023/07/08(Sat) 22:40:02)
  • アイコン環境/言語:[.NET Framework 4.8 , Windows11 , VB.Net] 
    分類:[.NET] 

    お世話になっています。

    TabPageにTextboxを設置し、背景色(BackColor)をTabPageと同色にしようと試みていますが、TabPageの背景色初期値がTransparentのため、Textboxの背景色には設定できません。
    TabPageの親コントロールであるTabControlにはそもそも背景色を設定するプロパティはなく、かといって、Formの背景色ともTabPageの背景色は異なります。

    イメージとしては、ファイルなどのプロパティにある編集不可のTextboxのように親コントロールと同色のReadonlyのTextboxを設置したいのですが、何か良い方法はあるでしょうか。
    (Labelコントールは、テキストを選択できないのでNG)

    最後の手段としては、TabPageの背景色である#F9F9F9を直接指定しようと思いますが、コントロールの色や形状はOSのバージョンに依存するので、できれば、TabPageと同色の背景色を自動で設定できるようにしたいと考えています。
違反を報告
引用返信

▽[全レス5件(ResNo.1-5 表示)]
■35468 / ResNo.1)  Re[1]: TabPageの背景色
□投稿者/ くるり 一般人(2回)-(2023/07/08(Sat) 22:47:17)
  • アイコン補足です。

    >TabPageの背景色である#F9F9F9を直接指定しようと思いますが

    この色は、TabPageのスクリーンショットを取って、ペイントで確認したものです。
違反を報告
引用返信
■35469 / ResNo.2)  Re[1]: TabPageの背景色
□投稿者/ KOZ 一般人(21回)-(2023/07/09(Sun) 19:46:06)
  • アイコン
    No35467に返信(くるりさんの記事)
    > 親コントロールと同色のReadonlyのTextboxを設置したいのですが、何か良い方法はあるでしょうか。
    
    DrawToBitmap で bmp に描画して、GetPixel で色を取得するとか。
    
    Public Class Form1
    
        Private Sub Form1_Shown(sender As Object, e As EventArgs) Handles MyBase.Shown
            Dim sz = TabPage1.Size
            Using bmp As New Bitmap(sz.Width, sz.Height)
                TabPage1.DrawToBitmap(bmp, New Rectangle(Point.Empty, sz))
                Dim bkColor = bmp.GetPixel(1, 1)
                TextBox1.BackColor = bkColor
            End Using
        End Sub
    
    End Class

違反を報告
引用返信
■35470 / ResNo.3)  Re[2]: TabPageの背景色
□投稿者/ くるり 一般人(3回)-(2023/07/10(Mon) 04:39:52)
  • アイコン>DrawToBitmap で bmp に描画して、GetPixel で色を取得するとか。

    サンプルコードをご提示いただき、ありがとうございます。
    こんな簡単に色情報を取得できるのですね。目からうろこです。

    ご提示いただいたコードを参考にすることで、目的としている機能の実装ができました。
    ありがとうございます。
解決み!
違反を報告
引用返信
■35471 / ResNo.4)  Re[3]: TabPageの背景色
□投稿者/ 魔界の仮面弁士 大御所(1556回)-(2023/07/10(Mon) 11:02:30)
  • アイコンNo35470に返信(くるりさんの記事)
    > こんな簡単に色情報を取得できるのですね。目からうろこです。

    ちなみに、TabPage の背景色は単色とは限りません。

    OS 側の設定テーマによっては、グラデーションがかかっているなど、
    座標ごとに複数の色が使用されていることがあります。
    http://dobon.net/vb/dotnet/graphics/drawvisualcontrol.html

    https://rarara.org/community/programming/%E3%82%BF%E3%83%96%E3%82%B3%E3%83%B3%E3%83%88%E3%83%AD%E3%83%BC%E3%83%AB%E3%81%AE%E8%83%8C%E6%99%AF%E8%89%B2%E3%82%92%E5%8F%96%E5%BE%97%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AF%EF%BC%9F/
解決み!
違反を報告
引用返信
■35472 / ResNo.5)  Re[4]: TabPageの背景色
□投稿者/ くるり 一般人(4回)-(2023/07/10(Mon) 23:44:17)
  • アイコン2023/07/11(Tue) 12:09:39 編集(投稿者)
    2023/07/11(Tue) 12:06:40 編集(投稿者)

    > ちなみに、TabPage の背景色は単色とは限りません。
    > OS 側の設定テーマによっては、グラデーションがかかっているなど、
    > 座標ごとに複数の色が使用されていることがあります。

    情報ありがとうございます。

    なるほど。
    実は、どこかののプロパティなどから取得できないものか、
    もやもやしたものがありましたが、TabPageの背景色はグラデーションが
    設定されているなどOSのテーマに依存しており、プロパティから取得できる類の
    ものではなさそうですね。

    教えていただいたURLも参考になりそうです。ありがとうございます。

    サンプルはC++でしたが、VB.Netでグラデーションを想定した対応を実装するとすれば
    ・同じサイズのTabPage背景をメモリ上に描画(http://dobon.net/vb/dotnet/graphics/drawvisualcontrol.html)
    ・Textboxがある座標の画像を切り抜き、ブラシを作成
    ・ブラシを用いてTextboxを描画(OwnerDraw)
    といった流れですね。おそらく。

解決み!
違反を報告
引用返信

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



■記事リスト / ▲上のスレッド
■35466 / 親記事)  VB2022でクリスタルレポートが開けない
□投稿者/ zingbay 一般人(1回)-(2023/07/08(Sat) 22:02:52)
  • アイコン環境/言語:[Win10/Win11 .net4.8] 
    分類:[その他] 

    VB2012+バンドル版のクリスタルレポートで動かしているシステムがあり、それをマイグレーションしようとしています。
    マイグレ先はVB2022+同じくバンドル版のクリスタルレポートです。
    CRforVS6413SP33_0-80007712.EXEをSAPのサイトよりダウンロードし、インストールしました。
    
    Visual Studioでvb2021のプロジェクトを開き、含まれているレポート(.rptファイル)をクリックして開こうとしたところ、「クラスが登録されていません」が表示され、開く事ができません。
    
    対応方法が分からず、こちらへポストさせて頂きました。
    SAP公式の掲示板で同じような事象が無いかを調べたのですが、見つける事ができませんでした。
    
    何か、調べる手立てや対応方法をご教示頂けませんか?
    
    
    

違反を報告
引用返信

▽[全レス2件(ResNo.1-2 表示)]
■35473 / ResNo.1)  Re[1]: VB2022でクリスタルレポートが開けない
□投稿者/ とくま 一般人(1回)-(2023/07/11(Tue) 23:13:38)
  • アイコン2023/08/04(Fri) 20:19:32 編集(投稿者)

    No35466に返信(zingbayさんの記事)
    Crystal Reportsは、名前は同じですが、途中で開発元会社が変わっており、バージョンの違いで
    運用方法なども違いが出てきます。
    https://ja.wikipedia.org/wiki/Crystal_Reports
    そのうち、バンドル版と呼ばれるのは、Visusl Studioに同梱されてインストールされていた
    VS2008までのものを指すと思います。
    https://userapps.support.sap.com/sap/support/knowledge/ja/1514084
    >VB2012+バンドル版のクリスタルレポート
    →存在しません
    >VB2022+同じくバンドル版のクリスタルレポート
    →存在しません
    >SAPのサイトよりダウンロードし、
    →「SAP Crystal Reports」と呼びますが、機能的に呼ぶならプラグイン版です。バンドル版とは別物になります。

    ただ、ここで落とし穴は、Visusl Studioが下位互換で、ターゲットフレームワークを
    変えられることです。PCにインストールされているのはVS2015で、とあるプロジェクトは
    VS2008と同じビルドという場合があります。プロジェクトのプロパティ画面で「対象のフレームワーク」
    となっている部分に .NET Framework のバージョンの何が設定されているかになります。
    https://learn.microsoft.com/ja-jp/visualstudio/ide/visual-studio-multi-targeting-overview?view=vs-2022
    .NET FrameworkとVisusl Studioの対応表は以下。
    https://qiita.com/nskydiving/items/3af8bab5a0a63ccb9893

    ここまでで、マイグレーション元の
    >VB2012+バンドル版のクリスタルレポート
    で、正確な@ビルド時の.NET Framework のバージョンとACrystal Reportsのバージョンを調べてください。
    https://wiki.scn.sap.com/wiki/display/BOBJ/Which+Crystal+Reports+assembly+versions+are+supported+in+which+versions+of+Visual+Studio+.NET
    https://wiki.scn.sap.com/wiki/display/BOBJ/SAP+Crystal+Products+-+End+of+Mainstream+Maintenance+Dates

違反を報告
引用返信
■35482 / ResNo.2)  Re[1]: VB2022でクリスタルレポートが開けない
□投稿者/ とくま 一般人(2回)-(2023/08/04(Fri) 20:21:36)
  • アイコンNo35466に返信(zingbayさんの記事)
    反応ないので、内容は当たり前のことかもしれないけど、備忘録としてまとめ。

    バンドル版というのが本当であれば、プロジェクトはVB2012だけど、ソースコード及びレポートファイルはVB2008で
    実質、『VB2008+バンドル版クリレポ』→『VB2022+プラグイン版最新クリレポ』のマイグレーションとかなるわけです。

    私は、バンドル版→プラグイン版の時点で、配布の手間が多かったため、見送りました。まず、ランタイムが全く別で
    ある点。そしてマージモジュールを含むインストーラを用意しないと正常に稼働しないという情報があったから
    です。Win11で.NetFramework3.5以下が廃止に向けて分離されてる臭いですが、2,3年はまだ延命できるでしょう。
    そうすればシステム全体を見直す余地も出てきます。ユーザ数が多いと、こんな判断も必要かもしれません。

    さて、
    VBもクリレポも、基本的にはバージョン違いを同じ端末にインストール可能だと思われますが、こういう
    マイグレーション時は別のPCを用意したほうが良いです。
    >Visual Studioでvb2021のプロジェクトを開き、含まれているレポート(.rptファイル)をクリックして開こうとしたところ
    いきなりこんなことせず、まずは『VB2022+プラグイン版最新クリレポ』で新規レポートを作成して正常稼働できる
    確認が必要です。プラグイン版クリレポは、開発環境にランタイムをインストールすると不具合が起きるという
    情報もあり、開発PCとテストPCも別のほうが良いでしょう。
    https://trapemiya.hatenablog.com/entry/2020/02/19/021446

    『VB2022+プラグイン版最新クリレポ』が動かないなら、公式サポートを受けるのが早いと思います。
    で、正常稼働ができることを確認してから、レポートの自動アップグレードが可能かテストします。
    アップグレードが走らなければ、おそらくそのまま移行はできないと思われます。
    そうなると、旧開発環境でレポートを開き、設定を見ながら、新規レポートで再作成するしかないと
    思われます。
違反を報告
引用返信

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






Mode/  Pass/


- Child Tree -