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

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

記事リスト ( )内の数字はレス数
Nomal"−"を縦書きにしたい(9) | Nomal.NET6.0 のWinFormにWPFのユーザーコントロールを配置したい(4) | NomalDataGridViewの列にコンボボックスを表示する(2) | Nomalデータグリッドビューの特定の列ヘッダの色(2) | NomalVB-Report10→11への移行(4) | Nomal入力値を元に描画させたい(2) | NomalVSTOとWebView2の共存って可能?(2) | Nomalデフォルトプリンタの用紙向き変更(0) | NomalpictureBoxとlabelの重ね合わせ(2) | NomalASP.net デバッグ時の .js ファイルの変更が反映されない(1) | NomalVBで開いたExcelでのイベントを取得するには(4) | NomalWindowsエクスプローラへのドロップ先フォルダの取得(4) | NomalデザイナでSystemColorsのような色一覧から選択できるようにしたい(0) | NomalVisualStudio2019 以降の検索ダイアログが正常に動作しない(2) | NomalTaskの入れ子の待ち方2(4) | NomalTaskの入れ子の待ち方(5) | NomalUsingの使い方が間違っている?(4) | Nomal//./の意味は?(2) | Nomalバイナリーファイルの結合と分解(2) | NomalDataGridViewの特定セルにボタンを配置する方法(3) | Nomal表の最後の行の下にDropできない(1) | NomalCookieの勉強を始めました。(2) | Nomal複数のPageに分かれる場合のスクレ―ピング(6) | NomalDataGridViewのセル結合部分にボタンを表示する方法(3) | NomalTask.Runの使い方(4) | Nomalランダムファイルを高速化させたい(5) | NomalPictureBox のサイズを設定する(2) | NomalProcessクラスMainModuleプロパティでアクセス拒否(3) | NomalLINQでControlsをEnable=Falseに設定(3) | Nomalプロセス間の通信(相互)(2) | NomalC#をVBに変換する方法が分かりません(1) | NomalPictureBoxに動的に画像を表示する(1) | NomalYahooのHPで、検索文字の入力ができない(3) | NomalWebView2のEncodeの問題?(5) | NomalWinFormでChromeをSeleriumで操作しているが、Closeの仕方(2) | NomalWinformでのDataGridView Comboboxのデータ追加削除が出来ない(3) | Nomal印刷部数の固定(1) | Nomalプログラムについて。(2) | Nomal拡張子関連付けのサンプルで削除時 例外発生(1) | Nomalユーザーコントロールをフォームで使用した時のエラー(6) | NomalマルチページTIFFをSelectActiveFrameでページ指定するとエラーが発生する(12) | Nomal画像の大きさを取得するには(4) | Nomalファイルがドライブ内で占有する容量(3) | NomalC#FormのXボタンイベントで、e.Cancel が使えない(2) | NomalAxWindowsMediaPlayerでプレイリストの途中から再生するには(2) | NomalWebView2でJavaScriptの実行の終了イベント(4) | NomalDataTableのDataRowVersion毎のInt型値の比較がうまくいかない(5) | NomalGPTかMBRを判断したい(2) | Nomalアセンブリ言語について。(1) | Nomalマクロについて。(3) | Nomalアセンブリ言語について。(20) | Nomalコーディングについて。(3) | NomalDLL内のスレッドからイベントを発行すると、受信したフォームでラベルが更新できない(3) | Nomal Parallel.Forで思ったより早くならない(5) | NomalForm1イベントの選択が出来なくなりました。(9) | Nomalシステムコールについて。(2) | NomalDataAdapterで2回目のUpDateが出来ない(6) | NomalAngleSharp.Scripting.JavaScriptの使い方(2) | Nomalデザーナー時の継承先formのサイズ(0) | Nomalコンソールではなくテキストボックスに文字列を出力したい(7) | NomalAngleSharpのクエリー文2(4) | Nomaldll修正時、それを参照しているexeのリビルド要否(2) | Nomalデフォルトプロパティを使いたい(6) | NomalAngleSharpのクエリー文(2) | Nomalテキストボックスでの制御(7) | Nomal二次元配列内の文字の置き換え(3) | NomalUSBカメラをピクチャボックスに表示(3) | Nomalcolor型を引数にする方法(2) | NomalEndConnectでのエラー(2) | NomalVSプロジェクト作成方法の違いによる、プラグイン機能を持つアプリケーションへの影響について(6) | Nomalボタンクリック時のLeaveイベントについて(1) | NomalInputボタンが押せない(4) | NomalWebBrowserのDocumentCompletedイベントの切り替え(3) | Nomalorder by で抽出したデータをDataTableに入れてForEachでDataRow取得した際の順番(2) | Nomalエクセルのデータを配列に読込んだ時の配列要素番号について(2) | Nomal非同期プログラミング時のConsole.WriteLineの動作(4) | NomalC#からストアドにDecimalを渡すと値が丸められる(4) | Nomalインスタンスの型を文字列で指定したい(2) | NomalSendKeys.Sendが効いていない(2) | Nomal他のプロジェクトのコントロールがツールボックスに表示されない(3) | Nomal複数のテキストボックス間のTextChangedイベントが相互干渉しないようにしたい(9) | Nomal呼び出し元によってWebApi側の処理速度に差が出る(1) | NomalPanelのDock=Topだとうまくいかない。代替案。(2) | Nomal.NetでのIPv6の比較(5) | Nomal追加コントロールのtabindex値を既存の間に設定する方法(1) | Nomal.Net 5.0 におけるDLL参照問題?(7) | NomalVB.net非同期処理でtextboxに出力したい(2) | NomalToolStripStatusLabelの空白部分を埋めたい(2) | NomalOracle への OleDb 接続に失敗する(3) | Nomal正規表現で株価を取得したい(1) | Nomal親スレッドへ処理の移譲(7) | Nomalデザイナで編集・チェックアウトキャンセルすると(3) | NomalVB.NETで作成したDLLをVB6.0から呼び出す(3) | NomalVB.NETからRDゲートウェイを利用したリモートデスクトップ接続(4) | NomalクラスによるGetBytes関数のエンディアンの違い(2) | Nomal.Net 5.0 におけるServiceControllerの代替クラス(3) | Nomal[VB.NET]Excelのプロセスが終了しない(2) | NomalC#をVBに変換した際の強制的な参照渡し(2) | Nomal新たにshowしたフォームでのボタンのクリック(5) | Nomalリッチテキストボックスの文字を太文字にしたい(2) |



■記事リスト / ▼下のスレッド
■35041 / 親記事)  "−"を縦書きにしたい
□投稿者/ キウイ 一般人(1回)-(2022/05/05(Thu) 19:15:33)
  • アイコン環境/言語:[Windows10 / VB.NET2019] 
    分類:[.NET] 

    VB.NET2019において、PictureBoxに縦書きで文字を書くコードを作成しています。
    '指定座標に一文字描画
    Sub DrawChar(ByVal drawChar As String, ByVal font As Font, ByVal pt As Point, ByVal g As Graphics)

    Dim ZenkakuStf As New StringFormat(StringFormatFlags.DirectionVertical)
    Dim brush1 As Brush = New SolidBrush(ForeColorLabel.ForeColor)

    g.DrawString(drawChar, font, brush1, pt, ZenkakuStf)
    End Sub

    PictureBoxに縦書きで1文字表示する、こんな感じのメソッドを作成しました。
    ひらがな、カタカナ、漢字等は問題なく表示されます。
    ここで問題なのが"−"という文字で"|"のように縦線で表示したいのですが、"−"のように横線で表示されてしまいます。
    If (drawChar = "−") Then
    g.DrawString(drawChar, CharFont, brush1, pt)
    Else
    g.DrawString(drawChar, CharFont, brush1, pt, ZenkakuStf)
    End If
    のように"−"だけ縦書き指定を外してみましたが、やはり"−"になってしまいます。
    縦線に表示する方法はないでしょうか。


違反を報告
引用返信

▽[全レス9件(ResNo.5-9 表示)]
■35046 / ResNo.5)  Re[2]: "−"を縦書きにしたい
□投稿者/ キウイ 一般人(3回)-(2022/05/06(Fri) 19:37:49)
  • アイコンNo35043に返信(YuOさんの記事)
    > ■No35041に返信(キウイさんの記事)
    >>ここで問題なのが"−"という文字で"|"のように縦線で表示したいのですが、"−"のように横線で表示されてしまいます。
    >
    > 以下のようなコードを使って試してみましたが (VS 2022)、
    > ・.NET Framework 4.8
    > ・.NET 6
    > ・.NET 5
    > ・.NET Core 3.1
    > のすべてにおいて、縦書きで正しく表示されました。
    > 特殊なフォントを指定したりしていないでしょうか。
    >
    > --- コード ---
    > Private Const Message As String = "初めて投稿される方は、必ず「書き込みのルールについて(12/4/2更新)」をお読みください。"
    >
    > Private Sub Form1_Paint(sender As Object, e As PaintEventArgs) Handles MyBase.Paint
    > Dim format As New StringFormat(StringFormatFlags.DirectionVertical)
    > Using font As New Font("遊ゴシック", 15.0)
    > e.Graphics.DrawString(Message, font, Brushes.Black, 10.0, 10.0, format)
    > e.Graphics.DrawString(Message, font, Brushes.Black, 40.0, 40.0)
    > End Using
    > End Sub
    > --- コード ---
    >
    指定のフォントはデフォルト値である「MS ゴシック」「14.25」です。

    If (drawChar = "−") Then
    Dim format As New StringFormat(StringFormatFlags.DirectionVertical)
    Using font1 As New Font("遊ゴシック", 14.0)
    g.DrawString("−", font1, Brushes.Black, 10.0, 10.0, format)
    g.DrawString("−", font1, Brushes.Black, 40.0, 40.0)
    End Using

    'g.DrawString("|", CharFont, brush1, pt)
    Else
    g.DrawString(drawChar, CharFont, brush1, pt, ZenkakuStf)
    End If
    ↑のようにしてみましたが、表示されるのは横線でした。

違反を報告
引用返信
■35047 / ResNo.6)  Re[3]: "−"を縦書きにしたい
□投稿者/ 魔界の仮面弁士 大御所(1422回)-(2022/05/06(Fri) 19:58:42)
  • アイコンNo35046に返信(キウイさんの記事)
    > 指定のフォントはデフォルト値である「MS ゴシック」「14.25」です。

    "MS ゴシック" ではなく
    "MS ゴシック" ですよね?


    > Using font1 As New Font("遊ゴシック", 14.0)

    "遊ゴシック" ではなく
    "游ゴシック" ですよね?



    また、OS の正確なバージョン番号も御提示ください。
    https://answers.microsoft.com/ja-jp/windows/forum/all/windows-10-april-2018/2c82da6b-ddec-4a9f-8f48-c1c4255242ea
    https://answers.microsoft.com/ja-jp/msoffice/forum/all/excel%E3%81%A7meiryoui%E3%81%AE%E7%B8%A6%E6%9B%B8/9fd56af1-cc77-4725-9a07-ecf8a667dfdc
違反を報告
引用返信
■35050 / ResNo.7)  Re[4]: "−"を縦書きにしたい
□投稿者/ キウイ 一般人(5回)-(2022/05/07(Sat) 00:14:06)
  • アイコンNo35047に返信(魔界の仮面弁士さんの記事)
    > ■No35046に返信(キウイさんの記事)
    >>指定のフォントはデフォルト値である「MS ゴシック」「14.25」です。
    >
    > "MS ゴシック" ではなく
    > "MS ゴシック" ですよね?
    >
    >
    >>Using font1 As New Font("遊ゴシック", 14.0)
    >
    > "遊ゴシック" ではなく
    > "游ゴシック" ですよね?
    >
    >
    >
    > また、OS の正確なバージョン番号も御提示ください。
    > https://answers.microsoft.com/ja-jp/windows/forum/all/windows-10-april-2018/2c82da6b-ddec-4a9f-8f48-c1c4255242ea
    > https://answers.microsoft.com/ja-jp/msoffice/forum/all/excel%E3%81%A7meiryoui%E3%81%AE%E7%B8%A6%E6%9B%B8/9fd56af1-cc77-4725-9a07-ecf8a667dfdc

    すみません。
    "MS ゴシック"
    です。

    "遊ゴシック"→"游ゴシック"に修正してみましたが、横線でした。
    念のため、"メイリオ"、"MS Pゴシック"にしてやってもみましたが、横線でした。


    OSバージョンは
    -------------------------------------------------
    エディション Windows 10 Home
    バージョン 21H2
    インストール日 ‎2022/‎01/‎05
    OS ビルド 19044.1645
    エクスペリエンス Windows Feature Experience Pack 120.2212.4170.0
    -------------------------------------------------


    以下のコードで、
    Dim CharFont As Font
    Dim fontFam As FontFamily
    Dim ZenkakuStf As New StringFormat(StringFormatFlags.DirectionVertical)

    fontFam = font.FontFamily
    CharFont = New Font(fontFam, 14)

    Dim brush1 As Brush = New SolidBrush(ForeColorLabel.ForeColor)

    g.DrawString(drawChar, CharFont, brush1, pt, ZenkakuStf)

    "−…「」"という文字列で実行した結果が添付画像です。
    左から
    "MS ゴシック"、"メイリオ"、"游ゴシック"の順です。
    fontFam変数に上記フォント名が入っているのは確認しています。

    >https://answers.microsoft.com/ja-jp/msoffice/forum/all/excel%E3%81%A7meiryoui%E3%81%AE%E7%B8%A6%E6%9B%B8/9fd56af1-cc77-4725-9a07-ecf8a667dfdc
    こちらに書かれていた記事を追跡してメイリオのフォントが6.50なのは確認しましたが、古いものに戻すというのはモノがないので無理です。
    もしかしてOSレベルのバグなのでしょうか。うーん。

103×100
イメージ
font.jpg
/4KB
違反を報告
引用返信
■35052 / ResNo.8)  Re[5]: "−"を縦書きにしたい
□投稿者/ 魔界の仮面弁士 大御所(1424回)-(2022/05/07(Sat) 14:11:59)
  • アイコンNo35050に返信(キウイさんの記事)
    > インストール日 ‎2022/‎01/‎05
    最近の WinApp って、不可視文字な LRM が混入することが増えてきていて、
    Unicode 非対応の環境にコピペした時に文字化けして困りますね…。
    (たとえば、ファイルのプロパティの作成日時などの欄など)

    化けてしまっている 8206 は、Left-to-Right Mark の不可視文字ですね。
    アラビア語やヘブライ語のように、文章を右から左に書く言語において
    英単語などの左から右に記述する語を挿入する際に使われます。


    ――閑話休題。


    > "−…「」"という文字列で実行した結果が添付画像です。
    当方の 21H2 環境 (Win10 および Win11) でも同様でした。
    "NSimSun" だと回転しましたが…。※Microsoft Word の縦書きでも同様。

    U+002D,U+2010-2015,U+FF0D あたりの文字は、フォントによって
    縦書き用字形を持っているかどうかが異なるので、個別対応が必要になるかも。


    > CharFont = New Font(fontFam, 14)
    > Dim brush1 As Brush = New SolidBrush(ForeColorLabel.ForeColor)
    New した Font や Brush は、使用後に Dispose (Using) しましょう。


    > メイリオのフォントが6.50なのは確認しましたが、
    フォントバージョンの違いについては調べ切れていませんが、手始めに
    ・そもそも書字方向依存グリフであるのか否か。
    ・OS 依存性、フォント依存性があるのかどうか。
    ・GDI+ の場合と GDI の場合で差があるかどうか
    などを調査して、対応を考えていくという方針ではどうでしょう?
    (別フォントで代用、別文字で代用、別の描画方法を併用など)


    参考情報として、VerticalOrientation.txt を紹介しておきます。
    UAX #50 (Unicode Vertical Text Layout)
    https://www.unicode.org/Public/UCD/latest/ucd/VerticalOrientation.txt

    FF0D '−' や 002D '-' は「R」で、
    30FC 'ー' は「Tr」だそうな。

    # U - Upright, the same orientation as in the code charts
    # R - Rotated 90 degrees clockwise compared to the code charts
    # Tu - Transformed typographically, with fallback to Upright
    # Tr - Transformed typographically, with fallback to Rotated


    YuO さんが試された 30FC 'ー' にしても、フォントによっては
    左右非対称の字形だったりしますから、たとえ横書きするにしても、
    Left-to-Right で描画した時と、Right-to-Left の時とで、
    描画を反転させるべきか否か、という問題があったりします。


    参考までに、当方の描画結果と実験コードを載せておきます。
    DpiAwareneww は PerMonitorV2 設定です。

    Option Strict On
    Public Class Form1
      Private Sub PictureBox1_Paint(sender As Object, e As PaintEventArgs) Handles PictureBox1.Paint
        Const LANGID_JA_JP As Integer = &H411
        'NoFontFallback は、非対応の文字を代替フォントではなく豆腐文字で描画するための指定
        Dim vertFmt As New StringFormat(StringFormatFlags.DirectionVertical Or StringFormatFlags.NoFontFallback, LANGID_JA_JP)
        Dim horiFmt As New StringFormat(StringFormatFlags.NoFontFallback, LANGID_JA_JP)
        Dim charcters = ChrW(&H201C) & ChrW(&HFF0D) & ChrW(&H2026) _
            & ChrW(&H300C) & ChrW(&H300D) & ChrW(&H2D) & ChrW(&H30FC) _
            & ChrW(&HFE31) & ChrW(&HFE32) & ChrW(&HFE33) _
            & ChrW(&H7C) & ChrW(&HFF5C) & ChrW(&H201D)
        Dim fontNames = {"MS ゴシック", "メイリオ", "游ゴシック", "NSimSun", "Microsoft JhengHei"}
        e.Graphics.TextRenderingHint = Drawing.Text.TextRenderingHint.AntiAlias
        For x = 0 To fontNames.Length - 1
          'Dim fontName = $"@{fontNames(x)}"
          Dim fontName = fontNames(x)
          Using charFont As New Font(fontName, 14.0F)
            Dim pt1 As New Point(15 + x * 65, 15)
            e.Graphics.DrawString($"{charcters}//{fontName}", charFont, Brushes.MediumBlue, pt1, vertFmt)
            Dim pt2 As New Point(350, 15 + x * 45)
            e.Graphics.DrawString($"{charcters}//{fontName}", charFont, Brushes.Crimson, pt2, horiFmt)
          End Using
        Next
      End Sub
    End Class
1161×861 => 250×185
イメージ
Vertical.png
/18KB
違反を報告
引用返信
■35053 / ResNo.9)  Re[6]: "−"を縦書きにしたい
□投稿者/ キウイ 一般人(6回)-(2022/05/07(Sat) 18:43:17)
  • アイコンNo35052に返信(魔界の仮面弁士さんの記事)
    実験までしていただいて恐縮です。
    このコードでのアプリにおいてはフォント指定もユーザに出来るようにしたいので、フォント限定というのはしたくないし・・・


    'g.DrawString(drawChar, CharFont, brush1, pt, ZenkakuStf)
    Dim flags As TextFormatFlags = TextFormatFlags.VerticalCenter
    TextRenderer.DrawText(g, drawChar, CharFont, New Rectangle(pt.X, pt.Y, 30, 30), ForeColorLabel.ForeColor, flags)
    こんな感じでGDIでの描画も試してみましたが、やはり横線のままでした。

    もういっそ、1文字分を画像処理で90度回転するのが確実な気もしてきました。
    座標と描画サイズはわかっているのだし・・・

    ありがとうございます。

違反を報告
引用返信

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



■記事リスト / ▼下のスレッド / ▲上のスレッド
■35037 / 親記事)  .NET6.0 のWinFormにWPFのユーザーコントロールを配置したい
□投稿者/ はる 一般人(6回)-(2022/05/04(Wed) 20:26:14)
  • アイコン環境/言語:[Windows10 64bit C# .NET6.0] 
    分類:[.NET] 

    こちらのサイトも参考にしたんですが
    WindowsFormsIntegration.dllを追加してElementHostコントロールを
    追加しようにもWindowsFormsIntegration.dllが追加しようとすると
    「参照が無効であるか、サポートされていません」となります。

    追加の仕方または他の方法でも構いませんので
    表題の方法をご存じの方いらつしゃいませんか?


違反を報告
引用返信

▽[全レス4件(ResNo.1-4 表示)]
■35038 / ResNo.1)  Re[1]: .NET6.0 のWinFormにWPFのユーザーコントロールを配置したい
□投稿者/ Hongliang 大御所(623回)-(2022/05/04(Wed) 20:50:04)
  • アイコンとりあえず、.csprojの<PropertyGroup>下に
    <UseWindowsForms>true</UseWindowsForms>
    <UseWpf>true</UseWpf>
    の二つを書いておけば、改めて参照を追加することもなく使用可能なはずです。
    Visual StudioのデザイナでElementHostを扱えるかどうかは存じませんが。
違反を報告
引用返信
■35039 / ResNo.2)  Re[2]: .NET6.0 のWinFormにWPFのユーザーコントロールを配置したい
□投稿者/ はる 一般人(7回)-(2022/05/04(Wed) 21:28:23)
  • アイコンNo35038に返信(Hongliangさんの記事)
    > とりあえず、.csprojの<PropertyGroup>下に
    > <UseWindowsForms>true</UseWindowsForms>
    > <UseWpf>true</UseWpf>
    > の二つを書いておけば、改めて参照を追加することもなく使用可能なはずです。
    > Visual StudioのデザイナでElementHostを扱えるかどうかは存じませんが。

    ありがとうございます。
    追加しましたが、ツールボックスにないようです。
    アイテム選択のタブにはあるみたいなんですが
    どうやって追加すればいいんでしょうか?

違反を報告
引用返信
■35040 / ResNo.3)  Re[1]: .NET6.0 のWinFormにWPFのユーザーコントロールを配置したい
□投稿者/ Azulean 大御所(530回)-(2022/05/05(Thu) 11:50:26)
  • アイコンNo35037に返信(はるさんの記事)
    > 追加の仕方または他の方法でも構いませんので
    > 表題の方法をご存じの方いらつしゃいませんか?

    本筋については「方法がないかもしれない」という認識です。
    取り急ぎはデザイナーでの配置を諦めた方が早いし、安定すると思います。

    たとえば、デザイナーでは予定する領域に Panel だけ置いておき、コードで Panel の子供として追加すればそこまで差し障らないはずです。


    No35039に返信(はるさんの記事)
    > アイテム選択のタブにはあるみたいなんですが
    > どうやって追加すればいいんでしょうか?

    ツールボックスの右クリックから開けるダイアログのタブは「.NET Framework コンポーネント」と書かれているとおり、.NET Framework 向けのようです。

    このタブにおける設定は .NET Core や .NET 5/6 とは無関係です。
    CheckBox や Button などの既存のチェックを外す実験をするとわかりますが、.NET Core や .NET 5/6 の Windows Forms Designer には影響しませんので…。
違反を報告
引用返信
■35048 / ResNo.4)  Re[2]: .NET6.0 のWinFormにWPFのユーザーコントロールを配置したい
□投稿者/ はる 一般人(8回)-(2022/05/06(Fri) 22:33:06)
  • アイコンNo35040に返信(Azuleanさんの記事)

    できました。ありがとうございました。
解決み!
違反を報告
引用返信

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



■記事リスト / ▼下のスレッド / ▲上のスレッド
■35034 / 親記事)  DataGridViewの列にコンボボックスを表示する
□投稿者/ Inoue 一般人(1回)-(2022/04/29(Fri) 14:40:17)
  • アイコン環境/言語:[windws10 VB.net] 
    分類:[.NET] 

    DataSourceプロパティを使用した例を試した結果
    以下のようなエラーダイアログが表示されます。

    「DataGridViewで次の例外が発生しました:
    System.FormatException: DataGridViewComboBoxCellの値が有効ではありません
    この規定のダイアログを置き換えるには、DataErrorイベントをハンドルしてください。」

    どのような原因が考えられるでしょうか?
違反を報告
引用返信

▽[全レス2件(ResNo.1-2 表示)]
■35035 / ResNo.1)  Re[1]: DataGridViewの列にコンボボックスを表示する
□投稿者/ 魔界の仮面弁士 大御所(1421回)-(2022/04/29(Fri) 15:45:30)
  • アイコンNo35034に返信(Inoueさんの記事)
    > 「DataGridViewで次の例外が発生しました:
    > System.FormatException: DataGridViewComboBoxCellの値が有効ではありません
    > この規定のダイアログを置き換えるには、DataErrorイベントをハンドルしてください。」
    >
    > どのような原因が考えられるでしょうか?
    ドロップダウンの内容は、バインドしたデータ内から選択されるわけですが、
    DataGridView の該当セルのデータが、コンボボックス列のアイテム一覧に
    存在しなかった場合、アイテムを選べないためにそのようなエラーが出ます。

    まずはデータを見直すことから始めるべきですが、不一致時に対応したい場合は
    エラーメッセージにも書かれているように、『DataError イベント』を実装し、
    入力をキャンセルするなり独自のエラー処理に差し替えることができます。

    https://dobon.net/vb/dotnet/datagridview/dataerror.html

    編集可能なコンボボックス(DropDownList→DropDown)が必要な場合はこんな感じ。
    http://dobon.net/vb/dotnet/datagridview/comboboxdropdownstyle.html
違反を報告
引用返信
■35036 / ResNo.2)  Re[2]: DataGridViewの列にコンボボックスを表示する
□投稿者/ Inoue 一般人(2回)-(2022/04/30(Sat) 11:16:03)
  • アイコンNo35035に返信(魔界の仮面弁士さんの記事)
    ありがとうございました。
    作成してバインドする列のデータタイプが違ってました。
    昨日1日悩んでいた問題が無事解決できました。
    感謝です!

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

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



■記事リスト / ▼下のスレッド / ▲上のスレッド
■35031 / 親記事)  データグリッドビューの特定の列ヘッダの色
□投稿者/ Iraquser 一般人(3回)-(2022/04/19(Tue) 08:44:23)
  • アイコン環境/言語:[Win10 VS2019] 
    分類:[.NET] 

    2022/04/19(Tue) 08:45:19 編集(投稿者)

    いつもお世話になっております。
    データグリッドビューの特定列の列ヘッダの背景色(BackColor)を他の列
    の列ヘッダと別の色にしたいとの要望を顧客から頂いております。例え
    ば、先頭(左端)の列ヘッダだけグレーで他の列ヘッダは白としたいっ
    て事です。全列ヘッダの背景色を変更する方法については
    ColumnHeaderDefaultCellStyleプロパティで変更できる事は知っていま
    すが、特定の列だけ列ヘッダの背景色を変更する方法は見つかりません
    でした。最悪、列ヘッダの位置にラベルを被せて背景色を変えたように
    見せる事はできますが、顧客との間に「あまりイレギュラーな方法を使
    わない」との約束があり躊躇しています。
違反を報告
引用返信

▽[全レス2件(ResNo.1-2 表示)]
■35032 / ResNo.1)  Re[1]: データグリッドビューの特定の列ヘッダの色
□投稿者/ 魔界の仮面弁士 大御所(1420回)-(2022/04/19(Tue) 09:45:44)
  • アイコンNo35031に返信(Iraquserさんの記事)
    > ColumnHeaderDefaultCellStyleプロパティで変更できる事は知っていますが
    ColumnHeadersDefaultCellStyle の間違いかな?

    > 特定の列だけ列ヘッダの背景色を変更する方法は見つかりませんでした。
    あれ、ここのサイトでも説明があったはずですけれどね。

    セルのスタイルを設定するためのプロパティは複数存在し、
    それらはカスケーディング(重ね合わせ)で決定されます。
    https://dobon.net/vb/dotnet/datagridview/cellstyle.html#section6
    https://docs.microsoft.com/ja-jp/dotnet/desktop/winforms/controls/cell-styles-in-the-windows-forms-datagridview-control

    カスケーディングスタイルは、個々のセルに割り当てられた物が最も強いです。
    (オーナードローされるセルの場合は、独自描画がそれ以上に強い)

    たとえば、各スタイルの BackColor プロパティなら、
    Color.Empty が設定されているスタイルの階層は無視されて、
    上位階層のスタイルが持つ BackColor が採用されます。

    各スタイルの Font プロパティなら、null 設定されている場合は
    無視されて、上位階層のスタイルの Font に委ねられます。


    public partial class Form1 : Form
    {
      DataGridView dgv;
      public Form1()
      {
        InitializeComponent();
        Padding = new Padding(6);
        Controls.Add(dgv = new DataGridView { Dock = DockStyle.Fill });
        dgv.AllowUserToAddRows = dgv.RowHeadersVisible = dgv.AllowUserToResizeRows = false;
        dgv.EditMode = DataGridViewEditMode.EditOnEnter;
        dgv.ColumnCount = 7;
        dgv.RowCount = 5;
        dgv.DefaultCellStyle.SelectionBackColor = dgv.DefaultCellStyle.BackColor;
        dgv.DefaultCellStyle.SelectionForeColor = dgv.DefaultCellStyle.ForeColor;
        dgv.EnableHeadersVisualStyles = false;
        //dgv.ColumnHeadersDefaultCellStyle.BackColor = Color.Empty;
        dgv.Columns[0].HeaderCell.Style.BackColor = Color.Crimson;
        dgv.Columns[6].HeaderCell.Style.BackColor = Color.LightSeaGreen;
        foreach(DataGridViewColumn c in dgv.Columns)
        {
          c.HeaderText = ((DayOfWeek)c.Index).ToString();
        }
      }
    }
違反を報告
引用返信
■35033 / ResNo.2)  Re[2]: データグリッドビューの特定の列ヘッダの色
□投稿者/ Iraquser 一般人(4回)-(2022/04/19(Tue) 11:45:11)
  • アイコンNo35032に返信(魔界の仮面弁士さんの記事)
    魔界の仮面弁士さん、返信ありがとうございます。
    列ごとに HeaderCell.Style.BackColor を指定し、EnableHeadersVisualStyles
    を False にする事で解決できました。
解決み!
違反を報告
引用返信

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



■記事リスト / ▲上のスレッド
■35026 / 親記事)  VB-Report10→11への移行
□投稿者/ はな 一般人(3回)-(2022/03/28(Mon) 13:40:37)
  • アイコン環境/言語:[VS2022 C# .NET6.0] 
    分類:[.NET] 

    vs2022 c# .net6.0 で作成したプログラムにVB-Report11で帳票を作成
    したかったんですが、プレビューフォームがASP.NETにしか対応していないと。

    非常に分かりにくいかと思うのですが、、、、
    メインプログラムはwindowsフォーム(.NET6.0)です。
    印刷機能のみ別プログラム(Windowsフォーム Framework4.8)です。
    この印刷機能をメインプログラムに組み込みたいのですが、
    ASP.NETがさっぱりわかりません。

    できれば既存をそのまま使いたいのでCellReportをASP.NET側のプレビュー用の
    Documentに渡す形が理想です。

違反を報告
引用返信

▽[全レス4件(ResNo.1-4 表示)]
■35027 / ResNo.1)  Re[1]: VB-Report10→11への移行
□投稿者/ Hongliang 大御所(621回)-(2022/03/28(Mon) 13:55:11)
  • アイコン> できれば既存をそのまま使いたいのでCellReportをASP.NET側のプレビュー用の
    > Documentに渡す形が理想です。
    端的に言えば、不可能です。

    http://aws.adv.co.jp/demo/vb-report11/
    11.0 for .NETのページによればクライアント向けビューアは今後対応予定となっているので、対応されるまでは10.0 for .NET Frameworkを使われるのはいかがでしょうか。
違反を報告
引用返信
■35028 / ResNo.2)  Re[2]: VB-Report10→11への移行
□投稿者/ はな 一般人(5回)-(2022/03/28(Mon) 20:39:12)
  • アイコンNo35027に返信(Hongliangさんの記事)
    >>できれば既存をそのまま使いたいのでCellReportをASP.NET側のプレビュー用の
    >>Documentに渡す形が理想です。
    > 端的に言えば、不可能です。
    >
    > http://aws.adv.co.jp/demo/vb-report11/
    > 11.0 for .NETのページによればクライアント向けビューアは今後対応予定となっているので、対応されるまでは10.0 for .NET Frameworkを使われるのはいかがでしょうか。

    回答ありがとうございます。
    やはり無理ですか、、、、
    印刷処理をすべてASP.NETにさせるとして、WindowsフォームからASP.NETのプロシジャーを起動することはできますか?
違反を報告
引用返信
■35029 / ResNo.3)  Re[3]: VB-Report10→11への移行
□投稿者/ Hongliang 大御所(622回)-(2022/03/28(Mon) 20:55:42)
  • アイコンそもそもASP.NETってのは、IISなどのWebサーバ上で動作し、クライアントからhttp要求を受け、HTMLなどを返す、というものです。
    印刷をASP.NETにさせるというとサーバにつながってるプリンタってことになって、おそらく期待とは違うものになるんじゃないかと思います。

    まあとりあえず何ができるのか知りたいのであれば、メーカーが提供しているサンプルとか動かしてみればいいんじゃないでしょうか。
    その前にASP.NET自体の勉強が必要かもしれませんが、それを説明するのは掲示板では不可能なのでご自分でお調べください。
違反を報告
引用返信
■35030 / ResNo.4)  Re[4]: VB-Report10→11への移行
□投稿者/ はな 一般人(6回)-(2022/03/29(Tue) 07:50:26)
  • アイコンNo35029に返信(Hongliangさんの記事)


    ありがとうございます。
    諦めます。年内のアップデートを待とうと思います。
解決み!
違反を報告
引用返信

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






Mode/  Pass/


- Child Tree -

2022/05/16(Mon) 17:59:00 に作成されたキャッシュを表示しています。
生のデータを表示する | キャッシュを最新にする