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

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

記事リスト ( )内の数字はレス数
NomalVB.NETでBluetoothデバイスの電池残量を取得する方法(3) | Nomalクリスタルレポート 明細部のサブレポート(0) | Nomal重なったPictureBox同士を透過する方法(7) | NomalWindowsフォームデザイナについて(3) | Nomalvb.netでExcelファイル操作(7) | NomalVB.NETからcmdでpingを実行した時の結果(5) | Nomalvb.netでのExcelファイルそうさ(2) | Nomalキーボード+バーコードでキーボード入力を無効にしたい(6) | NomalVB2022でクリスタルレポートが開けない(2) | Nomalファイルとして配置したマニフェストを優先したい(2) | NomalTabPageの背景色(5) | NomalC#でJpeg圧縮のTiffファイルを作成したい(4) | Nomalエクセルのみ監視ができない(2) | NomalDataGridViewのVirtualModeを有効した場合の実装方法(4) | NomalExcelの数値 -> 日付みたいな関数?(2) | Nomaljumbo icon(256x256)が存在するか知る方法(6) | NomalDrawstringでの透過文字作成(3) | 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) | Nomal時間変数(文字列)の扱い(4) | NomalVB.net からAccessDBへの接続(2) | Nomal画像のスクロール(6) | Nomalタイマーの一括処理(6) | NomalTreeViewとDataGridViewのスクロールを同期(シンクロ)させたい(4) | NomalTreeViewの現在位置とDataGridViewの現在位置を合わせたい(7) | NomalPictureBoxの画像を連続保存(11) | NomalDataGridViewの特定セルにボタンを配置する方法(5) | Nomalフォームのリサイズ時にDataGridViewが再描画されない(4) | NomalテキストボックスのValidatingイベントよりも先に発生するボタン発生イベントは何でしょう?(2) | NomalPDFをフォーム上で表示させる方法につきまして(4) | NomalDataGridViewの行ヘッダーに行番号を表示した時のエラー(4) | Nomal継承元フォームで各フォームのボタン動作を検知したい(3) | Nomalラジオボタンの一括設定(7) | NomalWindowsエクスプローラからのドラッグ&ドロップ(2) | NomalRichTextBoxのテキストをpictureBOXへ(12) | Nomalクリックイベントでexeを作成できるか(2) | Nomal作成した白黒画像をWordに貼り付けてから「図として保存」(8) | Nomalアセンブリ情報が載らない(1) | Nomal先頭に空白(スペース)があるファイルを読み込んでRichTextBoxへ書き出すとスペースが削除える(6) | Nomalc#で日付型の定義の仕方で質問があります。(2) | NomalExcel Com オブジェクトの増殖(13) | Nomal二次元マップから値の取得(1) | NomalアプリでHDMIへ出す解像度を変えたい(4) | Nomal列車の時間ごとの位置情報を表示したいです。(2) | Nomal画像の中心を基点に回転(4) | NomalDataGridViewのドロップダウンリストの表示と選択後の値を分けたい(1) | NomalVB.NetでVB6.0と同じFontを指定しても同様に印刷されない(9) | NomalタッチキーボードでIMEを自動で切替えたい(6) | NomalVSTOによるエクセルアドインのインストーラーでのアップデート(1) | NomalMP4動画を再生する方法について(5) | NomalUrlにアクセスするとダウンロードされるファイルを捕まえる(2) | NomalLableのカラー色を文字変数から変更したい(5) | NomalLabelで文字単位の背景色(7) | NomalTEXTBOXのプロパティを文字列に(7) | Nomalタブレット等でスワイプによるスクロールを実装(2) | NomalPDFをフォーム上で表示させる方法につきまして(6) | NomalChart X軸上の描画を切り替えたい(0) | NomalRichTextBoxへのドラッグ&ドロップしたExcelファイルの扱い(3) | Nomal特定のPCだけ発生する「パディングは無効なので削除できません」のエラーの原因(6) | NomalASP.NET WebApi内でXmlReader.Create(url)がタイムアウトする(4) | NomalDatagridViewでファンクションキーを止めたい(5) | Nomal表示動作が重くなる(3) | Nomalbitmapを複数スレッドで処理したい(2) | NomalLoadOptionのパラメータの意味(3) | Nomalフォーム背景のみを半透明にしたい(5) | Nomal読み出し元フォームの位置取得方法(2) | Nomalコンストラクターに続く{}の意味(2) | Nomal1行で書くことできますか?(3) | NomalCommandBuilderによって作られるCommandTextの内容(5) | Nomalvb.netで7zの圧縮・解凍をしたい。(2) | NomalC# NASでのプログレスバー有りのコピー(0) | Nomal正規表現で文字の繰り返しパターン(4) | NomalDataViewのFindRowsde(7) | NomalNPOIでのエクセル編集で期待通りに書き込めません(2) | NomalDataGridのSetDataBindingに代わるもの?(3) | NomalFormのサイズ変更で掴める辺を制限したい(2) | NomalVSTOとWebView2の共存って可能?(3) | Nomalビデオ圧縮のコーデック(2) | NomalWindowsMediaPlayerで次のURLを指定しても反映されない。(3) | Nomal"−"を縦書きにしたい(9) | Nomal.NET6.0 のWinFormにWPFのユーザーコントロールを配置したい(4) | NomalDataGridViewの列にコンボボックスを表示する(2) | Nomalデータグリッドビューの特定の列ヘッダの色(2) | NomalVB-Report10→11への移行(4) | Nomal入力値を元に描画させたい(2) | Nomalデフォルトプリンタの用紙向き変更(0) | NomalpictureBoxとlabelの重ね合わせ(2) | NomalASP.net デバッグ時の .js ファイルの変更が反映されない(1) | NomalVBで開いたExcelでのイベントを取得するには(4) |



■記事リスト / ▼下のスレッド
■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 -

2023/09/21(Thu) 16:15:20 に作成されたキャッシュを表示しています。
生のデータを表示する | キャッシュを最新にする