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

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

記事リスト ( )内の数字はレス数
Nomalシステムドライブ以外へのページング設定が反映されない(5) | Nomalブラウザでコピーした透過PNGを貼り付けたい(4) | Nomalforeachでループ回数を取得(2) | Nomalbitmapが保存できない(2) | Nomal特定ピクセルで画像を読み込みたい(2) | NomalDataGridViewでAlt+Enterで改行したい(2) | Nomal全角シフト中にアクセスキーが効かない(5) | NomalDataAdapter.Updateで構文エラー(6) | Nomal抽象クラスで実装したクラスの情報を知る(3) | Nomal画面遷移(モーダルとモードレス)(2) | NomalProcessクラスからbatファイル実行後、KILLできない(2) | NomalGetDirectoriesでルートを指定するとエラーになる(3) | Nomal兆億万表記の文字列を数値に変換できる?(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で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) |



■記事リスト / ▼下のスレッド
■35372 / 親記事)  VB.net からAccessDBへの接続
□投稿者/ うっきー 一般人(4回)-(2023/02/09(Thu) 17:55:29)
  • アイコン環境/言語:[VB.NET, Windows10,accdb] 
    分類:[.NET] 

    お世話になっております。

    VB.NETのアプリからAccessのDBにアクセスする場合
    アプリを使用するパソコンに、
    Accessランタイムをインストールしないでも
    接続できるような方法はありますでしょうか?


    現在使用しているVB.NETのアプリは
    Microsoft.ACE.OLEDB.16.0 を使用してAccessのDBにアクセスしており
    このアプリを使用するパソコンは、
    Accessランタイムのインストールが必要と聞いています。

    これを、アプリ側の設定変更かプログラムの変更(あるいはその両方)で
    Accessのインストール作業を不要にしたいです。


    例えば、Oracleとかだと、アプリ側にDLLがあれば
    各端末では設定不要だと思うので・・・

    初歩的な質問で申し訳ありませんが、どうぞよろしくお願いいたします。


違反を報告
引用返信

▽[全レス2件(ResNo.1-2 表示)]
■35373 / ResNo.1)  Re[1]: VB.net からAccessDBへの接続
□投稿者/ 魔界の仮面弁士 大御所(1535回)-(2023/02/09(Thu) 18:27:39)
  • アイコン2023/02/09(Thu) 19:52:18 編集(投稿者)

    No35372に返信(うっきーさんの記事)
    > Accessランタイムをインストールしないでも
    > 接続できるような方法はありますでしょうか?

    現行 OS (Windows 10/11 など) では、追加インストールが必須です。
    古い OS だとしても、対 .accdb だと、インストール無しには無理ですね。


    対 .mdb なら、Jet 4.0 未満の世代なら、OS によっては
    標準で組み込まれているものがあったりしますが…。

    Jet 3.0/3.5x 世代の .mdb が相手の場合、
    Windows 2000 (32bit) であれば、標準で繋げられます。

    Windows 98/ME 世代の場合は、.mdb への接続は
     ・単体頒布版の JET データベースエンジン インストーラー
     ・JET 同梱世代の MDAC
     ・Access ランタイム(あるいは Office)
    のいずれかが必要です。

    まぁ現実的では無いですね。Windows 98〜2000 世代だと、
    対応する .NET Framework も 2.0 までですし…。


    > 例えば、Oracleとかだと、アプリ側にDLLがあれば
    > 各端末では設定不要だと思うので・・・
    Managed ODP.NET のことですね?

    JET / ACE エンジンについては、レジストリ登録が必須なので、
    いわゆる XCOPY 配置による動作はできません。
違反を報告
引用返信
■35374 / ResNo.2)  Re[2]: VB.net からAccessDBへの接続
□投稿者/ うっきー 一般人(5回)-(2023/02/10(Fri) 09:03:44)
  • アイコン魔界の仮面弁士さん、
    丁寧なご説明ありがとうございます。

    残念ながらインストールは必要とのことですが
    それすらよく分かっていなかったので、とても助かりました!


    本当にありがとうございます。

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

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



■記事リスト / ▼下のスレッド / ▲上のスレッド
■35361 / 親記事)  画像のスクロール
□投稿者/ ま〜 付き人(53回)-(2023/01/30(Mon) 14:51:42)
  • アイコン環境/言語:[VS2022 Basic Windows10] 
    分類:[.NET] 

    お世話になります

    PictureBox内に画像を下から少しづつスクロールして表示したのですが
    何か良い方法はありますでしょうか?


違反を報告
引用返信

▽[全レス6件(ResNo.2-6 表示)]
■35363 / ResNo.2)  Re[2]: 画像のスクロール
□投稿者/ ま〜 付き人(54回)-(2023/01/30(Mon) 17:25:56)
  • アイコンいつもありがとうございます。

    言葉足らず(文字足らず)ですみません

    人間は関与しない形で同じサイズの画像を下から徐々に出して行き上方向に消えていくのを作りたいです

    https://dobon.net/cgi-bin/vbbbs/cbbs.cgi?mode=al2&namber=34662&no=0&KLOG=4

    が該当するのでしょうか?


違反を報告
引用返信
■35364 / ResNo.3)  Re[3]: 画像のスクロール
□投稿者/ 魔界の仮面弁士 大御所(1531回)-(2023/01/30(Mon) 18:36:24)
  • アイコンNo35363に返信(ま〜さんの記事)
    > 人間は関与しない形で同じサイズの画像を下から徐々に出して行き上方向に消えていくのを作りたいです

    やりたいことは分かりましたが、質問内容は何ですか?
    手順的な面は既に回答していますが、どの点で詰まっている状況なのかを
    具体的に説明していただかないと、回答しづらいです。


    Timer の使い方は分かりますか?
     → Tick イベント、Interval プロパティ、Start/Stop メソッド


    PictureBox への描画方法は分かりますか?
     プログラミング > .NET Tips > 画像、印刷(GDI+)
      コントロールのGraphicsオブジェクトを使って、画像を表示する
      画像の一部を切り取って(トリミングして)表示する
      ワールド変換により画像を平行移動、拡大、縮小、回転して表示する
違反を報告
引用返信
■35365 / ResNo.4)  Re[4]: 画像のスクロール
□投稿者/ ま〜 付き人(55回)-(2023/01/31(Tue) 13:04:21)
  • アイコンいつもありがとうございます

    > Timer の使い方は分かりますか?
    >  → Tick イベント、Interval プロパティ、Start/Stop メソッド

    ここは昔(VB6)と変わらないので何とか使えてます

    https://dobon.net/vb/dotnet/graphics/transform.html
    を参考になんとかできました。ありがとうございます

    記事中にあります

    'ワールド変換行列を単位行列にリセット
    g.ResetTransform()

    の仕組みが分からないのですがこれはどう考えれば宜しいでしょうか?



違反を報告
引用返信
■35366 / ResNo.5)  Re[5]: 画像のスクロール
□投稿者/ 魔界の仮面弁士 大御所(1532回)-(2023/02/06(Mon) 13:51:46)
  • アイコンNo35365に返信(ま〜さんの記事)
    > ここは昔(VB6)と変わらないので何とか使えてます
    >
    > 'ワールド変換行列を単位行列にリセット
    > g.ResetTransform()
    > の仕組みが分からないのですがこれはどう考えれば宜しいでしょうか?

    VB6 時代の描画命令でも、座標系の変更はできましたよね。
    回転はなくてスケーリング程度ですが。

    Private Command1_Click()
     '座標系をリセットする
     Picture1.Scale
     '左上から 四分の一程度右下にずらした位置を、原点座標とする
     Picture1.Scale (-50, -50)-(150, 150)

     '赤箱はボックス中央に描かれる
     Picture1.Line (0, 0)-(100, 100), vbRed, BF

     '座標系をリセットする(左上が原点の Twips 座標系)
     Picture1.Scale

     '青箱はボックス左上に描かれる
     '(赤箱と同じ指定だが、座標系が異なるので描画位置も変化する)
     Picture1.Line (0, 0)-(100, 100), vbBlue, BF
    End Sub


    VB6 で座標系をユーザー定義単位系に変更する場合
     Picture1.ScaleMode = vbUser
     Picture1.Scale (x1, y1)-(x2, y2)
    などと書きました。

    引数付きの Scale メソッドは、
    ScaleLeft, ScaleTop, ScaleWidth, ScaleHeight プロパティを
    一括指定するためのものです。
    http://rucio.a.la9.jp/main/kiso/Scale.htm

    で、変更した座標系を元の「左上原点の Twips 座標系」に戻す場合、
     Picture1.Scale '引数無しの Scale メソッド呼び出し
    もしくは、
     Picture1.ScaleMode = vbTwips
    などを使ってリセットできます。

    そして .NET の g.ResetTransform() というのは、この
    「元の座標系に戻すリセット処理」に相当します。


    .NET の Grapchis と VB6 の描画命令に互換性は無いので、
    細かい違いはありますが、ひとまず概念的な話ということで…。
違反を報告
引用返信
■35367 / ResNo.6)  Re[6]: 画像のスクロール
□投稿者/ ま〜 付き人(56回)-(2023/02/07(Tue) 19:32:31)
  • アイコンご指導の下色々やってみました。
    なるほど、なるほどって感じで
    やっと理解できました。

    ほんといつもありがとうございます。

    クローズします。
解決み!
違反を報告
引用返信

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



■記事リスト / ▼下のスレッド / ▲上のスレッド
■35354 / 親記事)  タイマーの一括処理
□投稿者/ ま〜 一般人(47回)-(2023/01/26(Thu) 16:23:55)
  • アイコン環境/言語:[Vs2022 Basic] 
    分類:[.NET] 

    お世話になります
    初歩的な質問で申し訳ないのですが

    コードの書き方についてです。

    下記の様な記述では構文エラーになってしまいます。同じ様な事が出来る方法ありますか?


    Private InterVaLTimer0 As Timer()

    '---以下FormLoad

    VaLTime = {Timer11, Timer12, Timer13・・・}

違反を報告
引用返信

▽[全レス6件(ResNo.2-6 表示)]
■35356 / ResNo.2)  Re[2]: タイマーの一括処理
□投稿者/ ま〜 一般人(48回)-(2023/01/27(Fri) 13:45:03)
  • アイコン
    > VB2022 なのですよね。単純にスペルミスしているだけでは?
    > InterVaLTimer0 = {Timer11, Timer12, Timer13 }

    すみません。切り取りミスです。誤解を招く事してしまいました。
    スペルミスでは無く実際に赤い波線が。。

    interVaLTimer0 = {Timer1} で {Timer1}に入ってます

250×52
イメージ
1674794703.jpg
/14KB
違反を報告
引用返信
■35357 / ResNo.3)  Re[3]: タイマーの一括処理
□投稿者/ 魔界の仮面弁士 大御所(1528回)-(2023/01/27(Fri) 14:08:41)
  • アイコンNo35356に返信(ま〜さんの記事)
    > スペルミスでは無く実際に赤い波線が。。

    いやいやいや。肝心のエラー内容を示して貰わないことには…。(^_^;)

    エスパー回答するわけにもいかないので、せめて
    そのエラー個所のコードとメッセージぐらいは貼ってください。


    可能性1) BC30311: 型 '(型名)' の値を 'Timer' に変換できません。
    可能性2) BC30451: 'Timer1' は宣言されていません。アクセスできない保護レベルになっています。
    可能性3) BC31429: class '(フォーム名)' に同じ名前のメンバーが多種類存在するため、'Timer1' があいまいです。
違反を報告
引用返信
■35358 / ResNo.4)  Re[4]: タイマーの一括処理
□投稿者/ ま〜 付き人(50回)-(2023/01/27(Fri) 14:18:05)
  • アイコンいつもエスパーアドバイスなのでエスパー以上かと思います

    ビルド出来なかったのエラーは表示されと思ってましたが右タプのエラー一覧にありのを発見しまいました。

    内容は
    「エラー BC30311 型 'Timer' の値を 'Timer' に変換できません。」
    です

    あと気になる所があります。宣言の所にある

    Private interVaLTimer0 As Timer()

    Private Tbox0 As TextBox()と比べて

    Privateの文字色が若干薄い色です

    変数宣言の Dimと同じ色です






違反を報告
引用返信
■35359 / ResNo.5)  Re[5]: タイマーの一括処理
□投稿者/ 魔界の仮面弁士 大御所(1529回)-(2023/01/27(Fri) 14:30:51)
  • アイコンNo35358に返信(ま〜さんの記事)
    > 「エラー BC30311 型 'Timer' の値を 'Timer' に変換できません。」

    Form2.vb の上部に、余計な Imports が追加されているか、
    あるいは、別の Timer が混入している…といった状況を想像。


    可能性1) Timer という名前の Class あるいは Strucutre を自作している

    可能性2) 名前空間の異なる Timer クラスが併用されている
     a: System.Windows.Forms.Timer
     b: System.Threading.Timer
     c: System.Timers.Timer
     d: System.Web.UI.Timer

     ※ WinForms の場合、普通は a: を使います。


    まずは確認のため、Form2 に貼った Timer1 コンポーネントを選択し、
    プロパティ ウィンドウの上部が
     "Timer1 System.Windows.Forms.Timer"
    になっているかどうかを確認してください。

    さらに、フィールド変数の型宣言を
     Private InterVaLTimer0 As Timer()
    から
     Private InterVaLTimer0 As Global.System.Windows.Forms.Timer()
    に変更してみてください。
違反を報告
引用返信
■35360 / ResNo.6)  Re[6]: タイマーの一括処理
□投稿者/ ま〜 付き人(52回)-(2023/01/27(Fri) 17:20:00)
  • アイコンやっぱりエスパー確定です。

    Private InterVaLTimer0 As Global.System.Windows.Forms.Timer()
    でOKでした

    それと
    Imports System.Threadingがありました。これを消してもOKでした。

    何に使ってるのか分からないですが何かのなごりだと思います

    こんなトラブルもあるんですね。

    ありがとうございました

    クローズします。
解決み!
違反を報告
引用返信

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



■記事リスト / ▼下のスレッド / ▲上のスレッド
■35349 / 親記事)  TreeViewとDataGridViewのスクロールを同期(シンクロ)させたい
□投稿者/ 炎の妖精さん 一般人(24回)-(2023/01/25(Wed) 13:50:23)
  • アイコン環境/言語:[Win10(64bit)_VB.NET(Framework 3.5)_MVB2010Express] 
    分類:[.NET] 

    お世話になっております。

    フォームにTreeView(左側)とDataGridView(右側)を配置しており、
    表示させるデータ件数はどちらのコントロールも同じ件数分、表示されています。

    TreeView側のコントロールにて
    マウスホイールやスクロールバーを移動させるとスクロール量分、DataGridViewをスクロールさせたいです。

    同様に
    DataGridView側のコントロールにて
    マウスホイールやスクロールバーを移動させるとスクロール量分、TreeViewもスクロールします。


    コントロールプロパティを確認したのですが、
    TreeViewにはScrollイベント関数が用意されていないようでした。
    どのようにすればいいのでしょうか?
違反を報告
引用返信

▽[全レス4件(ResNo.1-4 表示)]
■35350 / ResNo.1)  Re[1]: TreeViewとDataGridViewのスクロールを同期(シンクロ)させたい
□投稿者/ 魔界の仮面弁士 大御所(1525回)-(2023/01/25(Wed) 17:59:23)
  • アイコンNo35349に返信(炎の妖精さんさんの記事)
    > コントロールプロパティを確認したのですが、
    > TreeViewにはScrollイベント関数が用意されていないようでした。

    ありません。

    強いて言えば、 No35344 で示したように、
    TreeView の WndProc メソッドを Overrides して捉えるぐらいかと。

    サンプルを書いてみました。
    https://gist.github.com/Benshi/0042cb7b23ca310181bff15c4c3a0042
違反を報告
引用返信
■35351 / ResNo.2)  Re[2]: TreeViewとDataGridViewのスクロールを同期(シンクロ)させたい
□投稿者/ 魔界の仮面弁士 大御所(1526回)-(2023/01/25(Wed) 20:54:52)
  • アイコンNo35350に追記(魔界の仮面弁士の記事)
    > サンプルを書いてみました。
    > https://gist.github.com/Benshi/0042cb7b23ca310181bff15c4c3a0042

    上記実装を追加検証してみましたが、まだまだ不具合がありますね。

    (1) スクロールバーを押しっぱなしにしていると、
     終端に到達した後も Scroll イベントが発生し続けます。

    (2) 折りたたまれたノードを選択した状態で、そのノードを
    上側のスクロール領域外にし、そこで[→]あるいは[Num *]を押して
    ノードを展開した場合に、スクロールされるのにイベントが通知されません。


    各種パターンに追従させるのも面倒ですね…。

    こうなると、TopNode を Timer 監視した方が手っ取り早そうです。
    垂直スクロールしか検出できないですけれどね。

    Public Class Form1
      Public Event TreeViewScroll As EventHandler

      Private Sub Form1_TreeViewScroll(sender As Object, e As EventArgs) Handles Me.TreeViewScroll
        'ListBox1.Items.Insert(0, "Scrolled at " & Now.ToString("HH:mm:ss.fff"))
      End Sub

      Private topNode As TreeNode = Nothing
      Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick
        If TreeView1.TopNode IsNot Nothing Then
          If topNode IsNot TreeView1.TopNode Then
            topNode = TreeView1.TopNode
            RaiseEvent TreeViewScroll(TreeView1, EventArgs.Empty)
          End If
        End If
      End Sub
      Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Timer1.Interval = 150
        Timer1.Start()
      End Sub
    End Class


    あるいは、無理にスクロールを同期させようとするのではなく、
    No35346 の TreeGridView のように、最初から
    「ツリー表示対応のグリッドコントロール」を用いるとか。


    なお、先に例示したものとは別実装のツリー対応グリッドを探したところ、
    Eto.Forms の TreeGridView というのが見つかりました。
    https://github.com/picoe/Eto
    https://www.nuget.org/packages/Eto.Forms
    https://mokake.hatenablog.com/entry/2017/01/31/184421

    ただし Eto.Forms は、.NET Framework 3.5 には対応していないようです。
    一応 バージョン 2.3.0 以下であれば、.NET Framework 4 対応らしいので、
    ギリギリ VB2010 でも動かせるかもしれませんが…。(未確認)
違反を報告
引用返信
■35352 / ResNo.3)  Re[3]: TreeViewとDataGridViewのスクロールを同期(シンクロ)させたい
□投稿者/ 炎の妖精さん 一般人(25回)-(2023/01/26(Thu) 10:37:17)
  • アイコンNo35351に返信(魔界の仮面弁士さんの記事)

    魔界の仮面弁士様
    ご返信、及び動作検証ありがとうございます。

    TreeViewでスクロール実装するのは控えた方がよさそうですね。

    > あるいは、無理にスクロールを同期させようとするのではなく、
    > No35346 の TreeGridView のように、最初から
    > 「ツリー表示対応のグリッドコントロール」を用いるとか。
    そうですね。
    TreeGridViewの採用の検討材料とさせて頂きます。
解決み!
違反を報告
引用返信
■35353 / ResNo.4)  Re[3]: TreeViewとDataGridViewのスクロールを同期(シンクロ)させたい
□投稿者/ 炎の妖精さん 一般人(26回)-(2023/01/26(Thu) 13:57:58)
  • アイコンNo35351に返信(魔界の仮面弁士さんの記事)

    魔界の仮面弁士様
    ご返信、及び動作検証ありがとうございます。

    関係者と協議した結果、そのまま使って頂く事となりました。

    幸い、別の質問(No35341)にさせていただいた件では解決できたため、
    これなら問題ないという意見をもらいました。
    時間がありましたら、TreeGridViewや他コントロールの採用を検討させて頂く所存です。
解決み!
違反を報告
引用返信

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



■記事リスト / ▲上のスレッド
■35341 / 親記事)  TreeViewの現在位置とDataGridViewの現在位置を合わせたい
□投稿者/ 炎の妖精さん 一般人(19回)-(2023/01/24(Tue) 15:07:37)
  • アイコン環境/言語:[Win10(64bit)_VB.NET(Framework 3.5)_VS2010] 
    分類:[.NET] 

    お世話になります。
    本サイト様にはいつも助けられており感謝いたします!
    開発中に困った場面が出てまいりましたのでご助言いただければ幸いです!

    内容ですが、
    左側に"TreeView"、右側に"DataGridView"を表示させており、
    TreeViewの現在位置が変われば、DataGridViewの現在位置も変えたい所存です。

    TreeViewには行という概念が存在しない為、
    どのようにすればいいのか分からない次第です。
994×120 => 250×30
イメージ
TREEVIEW_DATAGRIDVIEW.png
/9KB
違反を報告
引用返信

▽[全レス7件(ResNo.3-7 表示)]
■35344 / ResNo.3)  Re[1]: TreeViewの現在位置とDataGridViewの現在位置を合わせたい
□投稿者/ 魔界の仮面弁士 大御所(1523回)-(2023/01/24(Tue) 16:51:42)
  • アイコンNo35341に返信(炎の妖精さんさんの記事)
    > 左側に"TreeView"、右側に"DataGridView"を表示させており、
    > TreeViewの現在位置が変われば、DataGridViewの現在位置も変えたい所存です。
    アイテムの高さの調整や、スクロールや折り畳みへの追従は
    すでに実装済みであり、あくまでも「現在行」の
    調整さえ行えれば良い、ということでしょうか。

    > TreeViewには行という概念が存在しない為、
    > どのようにすればいいのか分からない次第です。

    TreeNode.EnsureVisible メソッド … 指定ノードを表示させる(展開やスクロールも行われる)
    TreeNode.Bounds プロパティ … ノード位置を示す Recangle を取得する
    TreeView.SelectedNode … 現在選択されているノードを示す
    TreeView.TopNode プロパティ … 表示されている中で一番上のノードを取得・設定する
    TreeView.HitTest メソッド … 指定座標にある要素を調査する
    TreeView.BeforeSelect イベント … ノードが選択される直前に発生する(キャンセル可能)
    TreeView.AfterSelect イベント … ノードが選択された後で発生する
    TreeView.BeforeCollapse/BeforeExpand/AfterCollapse/AfterExpand イベント … ノードが折り畳み/展開される直前/直後にそれぞれ発生する
    TreeView.WndProc メソッド … オーバーライドして WM_VSCROLL/WM_HSCROLL を捉えることで、TreeView のスクロールを検知することができる

    DataGridView.FirstDisplayedScrollingRowIndex プロパティ … 指定行までスクロールさせる
    DataGridView.FirstDisplayedScrollingColumnIndex プロパティ … 指定列までスクロールさせる
    DataGridView.SelectedRows プロパティ … 現在選択されているプロパティを返す
    DataGridView.Scroll イベント … DataGridView のスクロールを検知することができる
    DataGridView.SelectionChanged イベント … 別のセル範囲が選択されると発生する
違反を報告
引用返信
■35345 / ResNo.4)  Re[3]: TreeViewの現在位置とDataGridViewの現在位置を合わせたい
□投稿者/ 炎の妖精さん 一般人(21回)-(2023/01/24(Tue) 16:57:34)
  • アイコン魔界の仮面弁士様
    回答ありがとうございます!

    > 方向性が異なってきますが、この構成のために
    >   「ツリー表示可能な DataGridView」
    > を使うという選択肢は如何でしょうか。
    「ツリー表示可能なDataGridView」が
    VS2010にも取り入れることが出来れば選択肢は有りです!


    > ノードの折りたたみにも対応できるようです。
    > オリジナルコード(C#)のダウンロードはこちら。
    サイトにアクセスしましたが、ページが見つかりませんとエラーが出ました。
    「Oops! That page can’t be found.」


    > 元記事はこちら。
    > [Mark Rideout's Blog] - [Customizing the DataGridView to support expanding/collapsing (ala TreeGridView)]
    此度のようなツリー表示可能なDataGridViewで表現したい場合は
    大変素晴らしいコントロールだと思いました。
    採用するかどうかは検討させていただきます。
違反を報告
引用返信
■35346 / ResNo.5)  Re[4]: TreeViewの現在位置とDataGridViewの現在位置を合わせたい
□投稿者/ 魔界の仮面弁士 大御所(1524回)-(2023/01/24(Tue) 17:07:25)
  • アイコン2023/01/24(Tue) 17:08:16 編集(投稿者)

    No35345に返信(炎の妖精さんさんの記事)
    > VS2010にも取り入れることが出来れば選択肢は有りです!
    Visual Studio 2005 向けの古いソースコードなので、
    移植性に関しては問題ないと思います。


    >>ノードの折りたたみにも対応できるようです。
    >>オリジナルコード(C#)のダウンロードはこちら。
    > サイトにアクセスしましたが、ページが見つかりませんとエラーが出ました。

    あぁ、失礼しました。
    >>元記事はこちら。
    からリンクされている記事を読んでいただくと、その冒頭に
    >>> Original Code:
    >>> https://www.windowsforms.net/blogs/markrideout/treegridview.zip
    とあります。この URL を踏むと、実際には
    下記(OneDrive) の移転先からダウンロードされる仕組みです。

    https://skydrive.live.com/redir?resid=3A5CA8204EC61147!47897&authkey=!AEyPC_P9956qy2E
違反を報告
引用返信
■35347 / ResNo.6)  Re[2]: TreeViewの現在位置とDataGridViewの現在位置を合わせたい
□投稿者/ 炎の妖精さん 一般人(22回)-(2023/01/24(Tue) 17:09:14)
  • アイコン魔界の仮面弁士様
    回答ありがとうございます!

    >> 左側に"TreeView"、右側に"DataGridView"を表示させており、
    >> TreeViewの現在位置が変われば、DataGridViewの現在位置も変えたい所存です。
    > アイテムの高さの調整や、スクロールや折り畳みへの追従は
    > すでに実装済みであり、あくまでも「現在行」の
    > 調整さえ行えれば良い、ということでしょうか。
    実はスクロールについても悩んでおりまして・・・
    TreeViewとDataGridViewのスクロールは同期(シンクロ)させたいのですが、
    TreeViewにはScrollに関するイベント関数が用意されていないようでした。
    TreeViewをマウスホイールでスクロールするとDataGridViewも同方向にスクロールしたいです。
    ※TreeViewとDataGridViewに表示されるデータ件数は同じです


    > TreeNode.EnsureVisible メソッド … 指定ノードを表示させる(展開やスクロールも行われる)
    > TreeNode.Bounds プロパティ … ノード位置を示す Recangle を取得する
    > TreeView.SelectedNode … 現在選択されているノードを示す
    > TreeView.TopNode プロパティ … 表示されている中で一番上のノードを取得・設定する
    > TreeView.HitTest メソッド … 指定座標にある要素を調査する
    > TreeView.BeforeSelect イベント … ノードが選択される直前に発生する(キャンセル可能)
    > TreeView.AfterSelect イベント … ノードが選択された後で発生する
    > TreeView.BeforeCollapse/BeforeExpand/AfterCollapse/AfterExpand イベント … ノードが折り畳み/展開される直前/直後にそれぞれ発生する
    > TreeView.WndProc メソッド … オーバーライドして WM_VSCROLL/WM_HSCROLL を捉えることで、TreeView のスクロールを検知することができる

    > DataGridView.FirstDisplayedScrollingRowIndex プロパティ … 指定行までスクロールさせる
    > DataGridView.FirstDisplayedScrollingColumnIndex プロパティ … 指定列までスクロールさせる
    > DataGridView.SelectedRows プロパティ … 現在選択されているプロパティを返す
    > DataGridView.Scroll イベント … DataGridView のスクロールを検知することができる
    > DataGridView.SelectionChanged イベント … 別のセル範囲が選択されると発生する
    各コントロールのイベントの説明、ありがとうございます!
    やりたいこと、出来そうなことを整理して
    実装できるか検証したいと思います。
違反を報告
引用返信
■35348 / ResNo.7)  Re[3]: TreeViewの現在位置とDataGridViewの現在位置を合わせたい
□投稿者/ 炎の妖精さん 一般人(23回)-(2023/01/25(Wed) 13:43:18)
  • アイコン魔界の仮面弁士様

    なんとか現在位置を取得することが出来ました。

    スクロールの同期(シンクロ)については新たに質問します。
    ありがとうございました。
解決み!
違反を報告
引用返信

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






Mode/  Pass/


- Child Tree -

2024/06/22(Sat) 04:33:31 に作成されたキャッシュを表示しています。
生のデータを表示する | キャッシュを最新にする