C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

全過去ログを検索

<< 0 | 1 >>
■101971  日付型のデータをSUBSTRで切り出した時の結果の違いについ
□投稿者/ 黒猫 -(2023/05/23(Tue) 10:21:32)

    分類:[VB.NET/VB2005 以降] 

    開発環境:win10,Oracle12c,VB2012
    Oracleサーバ:19c

    Oracle19cに対応する為、接続文字列を@からAへ変更しました。
    しかし、日付型のデータをSUBSTRで切り出した時、接続文字列@とAで結果が異なります。
    SUBSTR(START_DATE, 1, 5)部分をTO_CHAR(START_DATE, 'YY-MM')で書き直すしかないのでしょうか?
    御存じの方いらっしゃいましたら宜しくお願い致します。

    Dim DB As ADODB.Connection
    Dim Con As String
    Dim RS As ADODB.Recordset

    DB = New ADODB.Connection()
    @Con = "Provider = MSDAORA.1;Data Source=TEST;USER ID=TEST_USER/TEST_PASS"
    ACon = "Provider = OraOLEDB.Oracle;Data Source=TEST;USER ID=TEST_USER;Password=TEST_PASS"
    DB.Open(Con)

    RS = New ADODB.Recordset

    RS.Open("Select SUBSTR(START_DATE, 1, 5) As A From TEST_TABLE", DB)

    Debug.Print(ADO_RS("A").Value)
    @で接続したとき・・・23-05
    Aで接続したとき・・・2023-
親記事 /過去ログ178より / 関連記事表示
削除チェック/

■101955  ListBoxに表示する文字列を揃える方法
□投稿者/ 初心者 -(2023/05/19(Fri) 14:08:14)

    分類:[VB.NET/VB2005 以降] 

    VB初心者です。

    VB2005 .NETでwindowsアプリケーションを作成しています。
    ファイルデータの中から特定の情報のみを抽出して、左揃えでListBoxに表示させたいです。
    SHIFT-JISやUNICODE、UTFなどの様々な文字コードが混在しており、上手く左揃えで表示できません。

    様々な文字コードが混在しているデータを揃えてListBoxに表示させる方法を教えてください。
親記事 /過去ログ178より / 関連記事表示
削除チェック/

■101956  Re[1]: ListBoxに表示する文字列を揃える方法
□投稿者/ 魔界の仮面弁士 -(2023/05/19(Fri) 14:14:19)
    2023/05/19(Fri) 14:37:05 編集(投稿者)

    No101955 (初心者 さん) に返信
    > SHIFT-JISやUNICODE、UTFなどの様々な文字コードが混在しており、上手く左揃えで表示できません。
    文字コードは関係ないのでは?
    文字集合(CharSet)なら関係するかもしれませんが。


    それに「上手く左揃えで表示できません」とだけ仰られても、
    それがどういう状態になっていて、それをどうしたいのかが
    一切説明されていないので、具体的な対策を答えるのは難しいです。

    たとえば WinForms において ListBox1.Items.Add("文字列") と書いた場合
    MultiColumn が True / False のいずれであったとしても、
    それぞれの項目は既定で左寄せで記述されるはずなので、
    「うまく表示できない」が何を指しているのかが曖昧です。
    https://www.itlab51.com/?p=2912


    > 様々な文字コードが混在しているデータを揃えてListBoxに表示させる方法を教えてください。
    String 型の内部データの文字コードは UTF-16 相当で固定です。

    タブやスペースなどで区切った複数列表示にしたいという事でしょうか?
    その場合は、ListBox 以外のコントロール
    (たとえば ListView の Details モードなど)を使うことを
    検討してみた方が良いと思います。

    あるいは固定幅フォントを用いるようにしたうえで、
    文字幅(いわゆる半角/全角の類)を考慮した文字列を用意するか、
    あるいはオーナードローするとか。
    http://hanatyan.sakura.ne.jp/vb2005/vb2013listbox04.htm
記事No.101955 のレス /過去ログ178より / 関連記事表示
削除チェック/

■101957  Re[1]: ListBoxに表示する文字列を揃える方法
□投稿者/ kiku -(2023/05/19(Fri) 14:31:31)
    No101955 (初心者 さん) に返信
    > VB初心者です。
    >
    > VB2005 .NETでwindowsアプリケーションを作成しています。
    > ファイルデータの中から特定の情報のみを抽出して、左揃えでListBoxに表示させたいです。
    > SHIFT-JISやUNICODE、UTFなどの様々な文字コードが混在しており、上手く左揃えで表示できません。
    >
    > 様々な文字コードが混在しているデータを揃えてListBoxに表示させる方法を教えてください。

    1つのファイルの中身が、文字コードが混在されている状態なのでしょうか?
    その場合、そのファイルをバイナリで読み取ってから、
    ここから、ここまでは、UTF8、
    ここから、ここまでは、シフトJISなどの
    ファイルとしてのルールなどがあり、
    適宜適切な文字コードで取り込んでいるのでしょうか?

    あまり、そんなファイルを扱ったことがないので確認です。
記事No.101955 のレス /過去ログ178より / 関連記事表示
削除チェック/

■101959  Re[3]: ListBoxに表示する文字列を揃える方法
□投稿者/ 魔界の仮面弁士 -(2023/05/19(Fri) 16:36:09)
    2023/05/19(Fri) 16:56:19 編集(投稿者)

    No101958 (初心者 さん) に返信
    > 下記サイトを参考に空白埋めで揃えようとしています。
    > http://hanatyan.sakura.ne.jp/dotnet/StrCut.htm
    それは Shift_JIS の文字集合に収録されている文字のみを対象とした手法です。
    日本語環境を前提としたものであり、他言語環境で通用する手法ではありません。

    たとえば Unicode には「ゼロ幅文字」というものが存在しますが、それには非対応です。
    同じ文字であっても、文章の先頭に来た場合と
    二文字目以降に来た場合で文字幅が異なる言語なんてもありますしね。

    あるいは、
     TextBox1.Text = ChrW(&HD842) & ChrW(&HDFB7) & ChrW(&H91CE) & ChrW(&H5BB6)
     TextBox2.Text = ChrW(&H5409) & ChrW(&H91CE) & ChrW(&H5BB6)
    のような文字列の桁位置合わせにも向かないでしょう。(両者はいずれも漢字 3 文字)

    また、『┠』や『α』といった文字は、日本語向けフォントでは
    全角相当でレンダリングされることが多いですが、他国語対応フォントでは
    半角相当でレンダリングされる可能性があります。


    なので空白でそろえるのではなく、先ほどの回答でも述べたように、
    ListBox を使う代わりに、1 行を複数の列で表示できるコントロール
    (ListView など)に変更するか、あるいはオーナードローなどで
    対処することをお奨めします。
    http://hanatyan.sakura.ne.jp/vb2005/vb2013listview01.htm

    > データが英語やハングル、中国語など様々な言語で管理されています。
    元データの「文字コード」が混在しているわけではないですよね?


    たとえば、文字集合としての Unicode であれば、
    同一の文字コード(UTF-7 とか UTF-8 とか UTF-16LE とか)にて、
    それらの文字種を同時に扱えます。

    厳密にいえば Unicode バージョンによって収録している文字数が異なりますし、
    Unicode 未収録の文字(たとえば日本の戸籍統一文字の一部など)もあるので、
    複数の文字コードを併用して管理することが無いとは言えませんけれどね…。

    -- 以下蛇足 --
    たとえば韓国語の場合、ハングル自体は 24 種(子音14個+母音10個)ですが、
    それらの組み合わせで一つの文字を表すため、文字種そのものは 11,172個あります。
    しかし日常で使う文字は3〜4千字程度なので、韓国系文字コードでは
    よく使われるハングルしか収録されていません。

    韓国の Wansung (KS X 1001:2002) に収録されている文字数は
    8227文字(ハングル2350字、漢字4888字、その他989)です。
    これには 平仮名(83文字)や片仮名(86文字)なども含まれています。


    中文漢字向けの物で見てみると、
    GB 18030-2022 で 87,887文字
    GB 18030-2005 で 70,244文字
    という収録状況です。

    ちなみに VB6 当時の Unicode は UCS-2 相当の符号化を想定しており、
    最大でも基本多言語面の 65,536 文字種しか保持できませんでした。

    現在の VB ではサロゲートペアや UTF-8 をサポートしたので、
    Unicode の基本多言語面外の文字を扱えるようになっています。
    (絵文字サポートなどは、WPF と WinForm で状況が異なるのですけれど)

    Unicode 2.0 で 38,950文字を収録
    Unicode 3.2 で 95,221文字を収録(JIS X 0213 に正式対応)
    Unicode 15.0 で 149,186文字を収録
記事No.101955 のレス /過去ログ178より / 関連記事表示
削除チェック/

■101960  Re[4]: ListBoxに表示する文字列を揃える方法
□投稿者/ 魔界の仮面弁士 -(2023/05/19(Fri) 18:12:58)
    No101959 (魔界の仮面弁士) に追記
    > なので空白でそろえるのではなく、先ほどの回答でも述べたように、
    > ListBox を使う代わりに、1 行を複数の列で表示できるコントロール
    > (ListView など)に変更するか、あるいはオーナードローなどで
    > 対処することをお奨めします。
    > http://hanatyan.sakura.ne.jp/vb2005/vb2013listview01.htm

    ListBox の代わりに ListView を使ってみるサンプル。


    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
      ' このあたりはデザイン時に指定しておけばよい
      ListView1.View = View.Details
      ListView1.FullRowSelect = True
      ListView1.GridLines = False
      ListView1.Columns.Add("列1")
      ListView1.Columns.Add("列2")
      ListView1.Columns.Add("列3")
      ListView1.Columns.Add("列4").TextAlign = HorizontalAlignment.Right
      ListView1.HeaderStyle = ColumnHeaderStyle.Nonclickable
      'ListView1.HeaderStyle = ColumnHeaderStyle.None '列ヘッダが不要な場合


      'データ登録
      ListView1.Items.Add("個人001").SubItems.AddRange(New String() {"aaa", "abc", "25"})
      ListView1.Items.Add("個人002").SubItems.AddRange(New String() {"bbb", "あああ", "75"})
      ListView1.Items.Add("個人003").SubItems.AddRange(New String() {"ccc", "哦哦哦", "66"})
    End Sub
記事No.101955 のレス /過去ログ178より / 関連記事表示
削除チェック/

■102005  Re[1]: byteをstringに
□投稿者/ WebSurfer -(2023/05/26(Fri) 17:09:30)
    No102004 (たかし さん) に返信

    > 今 resultの中に "3646 3142 3036 3137 3031 3031 0000\r\0"と入っているのですが
    > それを"6F1B06170101"と表示させたいのですがどう書けばよろしいでしょうか

    どういう変換法則があるのですか?
記事No.102004 のレス /過去ログ178より / 関連記事表示
削除チェック/

■102007  Re[2]: byteをstringに
□投稿者/ たかし -(2023/05/26(Fri) 17:22:50)
    No102005 (WebSurfer さん) に返信
    > ■No102004 (たかし さん) に返信
    >
    >>今 resultの中に "3646 3142 3036 3137 3031 3031 0000\r\0"と入っているのですが
    >>それを"6F1B06170101"と表示させたいのですがどう書けばよろしいでしょうか
    >
    > どういう変換法則があるのですか?

    分かりにくくてすみません
    今現在変換させているのは下記のようにしています

    for (int i = 0; i < 8; i++)//0-7
    {
    string sendMsg = "RDS EM00" + i + ".U 1" + '\r';

    Encoding enc = Encoding.ASCII;
    byte[] sendBytes = enc.GetBytes(sendMsg);

    netstream.Write(sendBytes, 0, sendBytes.Length);
    Console.WriteLine(sendMsg);

    System.IO.MemoryStream ms = new System.IO.MemoryStream();
    byte[] resBytes = new byte[256];
    int resSize = 0;

    do
    {
    resSize = netstream.Read(resBytes, 0, resBytes.Length);
    if (resSize == 0)
    {
    messagebox("サーバーが切断しました。");
    break;
    }
    ms.Write(resBytes, 0, resSize);
    }
    while (netstream.DataAvailable || resBytes[resSize - 1] != '\n');

    string resMsg = enc.GetString(ms.GetBuffer(), 0, (int)ms.Length);
    ms.Close();

    resMsg = resMsg.TrimEnd('\n');


    ushort number = ushort.Parse(resMsg);
    byte[] byteArray = BitConverter.GetBytes(number);
    Array.Reverse(byteArray);
    string str = Encoding.ASCII.GetString(byteArray);
    numb[i] = str;
    }

    string number2 = null;
    for (int k=0; k<8; k++)
    {
    number2 += numb[k];
    }

    number2 = number2.TrimEnd('\0');
    searchTextBox.Text = number2;

    無理やり変換して最後に繋いでいるのですが短いコードで出来る方法はないでしょうか
記事No.102004 のレス /過去ログ178より / 関連記事表示
削除チェック/

■102022  例外スローについて
□投稿者/ 困っております。 -(2023/06/06(Tue) 12:30:08)

    分類:[ASP.NET (VB)] 

    よろしくお願いします。

    microsoft visual studio2005

    IEからedgeに変更中ですが、検索ボタンを押して
    データを画面に表示後、取り消し、登録、画面遷移ボタンを押した時、

    「System.Web.HttpUnhandledException: 種類 'System.Web.HttpUnhandledException' の例外がスローされました。 ---> System.Exception: 270.0000305175781 は Int32 の有効な値ではありません。 ---> System.FormatException: 入力文字列の形式が正しくありません。」

    のエラーが発生しています。(270.0000305175781の部分は都度かわっています。)

    データに問題ないと思われ、検索データが多い時(100件以上)は必ず起こっており、
    同じデータで検索データが少ない時はエラーが発生していない状態です。
    試しに取り消しボタンのクリック時の処理を全てコメント化しても同じ現象が発生しました。

    edge用に何か設定が必要なのでしょうか。
    よろしくお願いします。
親記事 /過去ログ178より / 関連記事表示
削除チェック/

■102024  Re[2]: 例外スローについて
□投稿者/ 魔界の仮面弁士 -(2023/06/06(Tue) 13:33:58)
    2023/06/06(Tue) 13:49:52 編集(投稿者)

    No102022 (困っております。 さん) に返信
    > microsoft visual studio2005
    .NET Framework 2.0 世代の開発環境ですよね。
    流石に、開発環境も含めて刷新すべきかと…。


    > IEからedgeに変更中ですが、検索ボタンを押して
    世代的に、HTML LS (HTML5) に準拠したページでは無さそうですね。

    Internet Explorer のドキュメント モードはどうなっていましたか?
    https://furoshiki.hatenadiary.jp/entry/ie_documentmode


    エラーメッセージで検索してみると、IE10 / IE11 において
    ImageButtonコントロールで、UpdatePanelの非同期ポストバックを発生させると
    System.Web.HttpUnhandledException ---> System.FormatException
    のエラーになる…といった事例がありました。
    (ドキュメント モードを IE9 以下に設定すると、仮回避できるらしい)

    https://social.msdn.microsoft.com/Forums/en-US/abc59878-8c1c-4707-afaa-6b0e4cb7085f/imagebuttons-not-working-in-ie10
    https://kiyokura.hateblo.jp/entry/20130128/p1
    http://tukaenai-pg.cocolog-nifty.com/blog/2013/03/aspnet-ie10-a41.html

    変動する 270.0000305175781 という値が、画像ボタンをクリックした
    xy 座標の値だと仮定すれば、この事象が当てはまりそうに思います。

    そしてこの事象は .NET Framework 2.0〜4.0 の ASP.NET では発生するものの
    .NET Framework 4.5 の ASP.NET だと発生しないようです。

    とはいえ、4.5 のサポートも終了していますので、
    Visual Studio を現行バージョンに入れ替えたうえで、
    .NET Framework 4.7.2 や .NET Framework 4.8 環境向けに
    ビルドしなおしてみることも検討してみてください。

    もしくは、ImageButton の代わりに Button を使うようにします。


    上記 URL(MSDN Forum)でやり取りされている回避策のようにすれば
    .NET Framework 2.0 + ImageButton のままでも動作させられるような
    回避コードを仕込めるかもしれませんが…流石に 2.0 環境は古すぎて
    Edge 対応のパッチを見つけるのは難しいかもしれません。
    (理解した上で、自前で書き下ろす必要があるかも)
記事No.102022 のレス /過去ログ178より / 関連記事表示
削除チェック/

■102030  VB.NETで牽引ファイルの作成、読込、書込み
□投稿者/ カサノ -(2023/06/09(Fri) 10:14:37)

    分類:[VB.NET/VB2005 以降] 

    VisualStudio2019でVB.NETを開発しています。
    元々使用している開発言語がCOBOLで、最近になってVB.NETも少し使用しています。
    COBOLだと、牽引ファイルという、各レコードを主キーで管理するファイルを作成し、読み書きを行うことができます。
    例えば主キーを年月日で登録できるようにして、引っ張ってきたい年月日を指定して読込めば、一つのファイルに書かれている複数レコードの中から該当のレコードを引っ張ってくることができます。
    これと同じことをVB.NETで行うことは可能なのでしょうか。
親記事 /過去ログ178より / 関連記事表示
削除チェック/

■102051  Label名の変更
□投稿者/ ゆい -(2023/06/12(Mon) 17:19:44)

    分類:[VB.NET/VB2005 以降] 

    VB2017です。
    調べたのですが分かりませんでした。
    今更ながらの質問ですみません。

    自動で「Label1」というラベルが出来たとします。
    これを「Label5」に変更するにはどうすれば良いのでしょうか?
親記事 /過去ログ178より / 関連記事表示
削除チェック/

■102057  子画面から親画面のタイマー制御
□投稿者/ Yuta -(2023/06/15(Thu) 11:23:21)

    分類:[VB.NET/VB2005 以降] 

    Windows10 VS2017(VB.net)でWindowsフォームのアプリケーションを作成しています。

    やり方がわからないので教えてください。
    よろしくお願いします。

    親画面に時間表示とタイマーコントロール、子画面に開始/終了ボタンを作成しています。

    親画面から子画面を呼び出し、子画面の開始ボタンを押すと
    子画面はそのまま表示させた状態で親画面のタイマーを開始させたいです。

    目的としては子画面を閉じたときには、子画面の開始ボタン押した瞬間からの経過時間を表示させることです。

    サンプル等あれば助かります。
親記事 /過去ログ178より / 関連記事表示
削除チェック/

■102127  VBでのイベント未定義の処理
□投稿者/ ぴよ -(2023/07/06(Thu) 15:28:32)

    分類:[VB.NET/VB2005 以降] 

    開発環境:VS2005 VB.net
    下記ソースはVS2022 C#です。

    VBでC#の if (MyEvent != null) のような分岐方法をしたいのですが分かりません。

    「// ここで別処理を記述したい」のところに
    MyEventが定義されていない場合の別処理を行ないたいのですが
    VBでのイベント発生方法は RaiseEventと書いているのしか見つからず困っています。
    よろしくお願いします。

    public partial class Form1 : Form
    {
    public event EventHandler MyEvent;

    protected override void OnMouseDown(MouseEventArgs e)
    {
    if (MyEvent != null)
    MyEvent.Invoke(this, EventArgs.Empty);
    else
    // ここで別処理を記述したい

    base.OnMouseDown(e);
    }
    }
親記事 /過去ログ178より / 関連記事表示
削除チェック/

■102191  Re[4]: Mainが無いとエラーがでます
□投稿者/ 魔界の仮面弁士 -(2023/07/18(Tue) 14:12:15)
記事No.102182 のレス /過去ログ178より / 関連記事表示
削除チェック/

■102224  実行中に出る「WindowsApp1は対応していません」
□投稿者/ ゆい -(2023/07/29(Sat) 14:01:59)

    分類:[VB.NET/VB2005 以降] 

    Windows11、VB2017です。
    大量のデータ処理を実行中に、例えばExcelなど他のプログラムを開くと「WindowsApp1は対応していません」とのメッセージが出てフリーズ状態になってしまうのですがどうしてですか?
    もしかしてProgressBarコントロールとも何か関連でもあるのですか?
    よろしくお願いします。

親記事 /過去ログ178より / 関連記事表示
削除チェック/

■102260  時間のかかる処理の進行状況の表示について
□投稿者/ ゆい -(2023/08/09(Wed) 12:59:59)

    分類:[VB.NET/VB2005 以降] 

    いつも初歩的なことばかりですみません。
    下のはhttps://dobon.net/vb/dotnet/programing/displayprogress.htmlにあったのを見させていただいたものです。
    この中の
    > '1秒間待機する(時間のかかる処理があるものとする)
    > System.Threading.Thread.Sleep(1000)
    を、、
    System.Threading.Thread.Sleep(1000)
    System.Threading.Thread.Sleep(1000)
    System.Threading.Thread.Sleep(1000)
    のように3回繰り返し、1回終る毎に進行状況表示が3分の1づつ増え、3回目で終わるにはどのようにすれば良いのか教えてください。
    ここではFor i = 1 To maxLoopsで進行状況表示がされています。
    よろしくお願いします。
        -----------------------------------------------------------
    'Button1のClickイベントハンドラ
    Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
    '処理が行われているときは、何もしない
    If BackgroundWorker1.IsBusy Then
    Return
    End If

    'Button1を無効にする
    Button1.Enabled = False

    'コントロールを初期化する
    ProgressBar1.Minimum = 0
    ProgressBar1.Maximum = 10
    ProgressBar1.Value = 0
    Label1.Text = "0"

    'BackgroundWorkerのProgressChangedイベントが発生するようにする
    BackgroundWorker1.WorkerReportsProgress = True
    'DoWorkで取得できるパラメータ(10)を指定して、処理を開始する
    'パラメータが必要なければ省略できる
    BackgroundWorker1.RunWorkerAsync(10)
    End Sub

    'BackgroundWorker1のDoWorkイベントハンドラ
    'ここで時間のかかる処理を行う
    Private Sub BackgroundWorker1_DoWork(ByVal sender As Object, ByVal e As DoWorkEventArgs) Handles BackgroundWorker1.DoWork
    Dim bgWorker As BackgroundWorker = DirectCast(sender, BackgroundWorker)

    'パラメータを取得する
    Dim maxLoops As Integer = CInt(e.Argument)

    '時間のかかる処理を開始する
    Dim i As Integer
    For i = 1 To maxLoops
    '1秒間待機する(時間のかかる処理があるものとする)
    System.Threading.Thread.Sleep(1000)

    'ProgressChangedイベントハンドラを呼び出し、
    'コントロールの表示を変更する
    bgWorker.ReportProgress(i)
    Next

    'ProgressChangedで取得できる結果を設定する
    '結果が必要なければ省略できる
    e.Result = maxLoops
    End Sub

    'BackgroundWorker1のProgressChangedイベントハンドラ
    'コントロールの操作は必ずここで行い、DoWorkでは絶対にしない
    Private Sub BackgroundWorker1_ProgressChanged(ByVal sender As Object, ByVal e As ProgressChangedEventArgs) Handles BackgroundWorker1.ProgressChanged
    'ProgressBar1の値を変更する
    ProgressBar1.Value = e.ProgressPercentage
    'Label1のテキストを変更する
    Label1.Text = e.ProgressPercentage.ToString()
    End Sub

    'BackgroundWorker1のRunWorkerCompletedイベントハンドラ
    '処理が終わったときに呼び出される
    Private Sub BackgroundWorker1_RunWorkerCompleted(ByVal sender As Object, ByVal e As RunWorkerCompletedEventArgs) Handles BackgroundWorker1.RunWorkerCompleted
    If Not e.Error Is Nothing Then
    'エラーが発生したとき
    Label1.Text = "エラー:" & e.Error.Message
    Else
    '正常に終了したとき
    '結果を取得する
    Dim result As Integer = CInt(e.Result)
    Label1.Text = result.ToString() & "回で完了しました。"
    End If

    'Button1を有効に戻す
    Button1.Enabled = True
    End Sub
親記事 /過去ログ178より / 関連記事表示
削除チェック/

■102279  Chartの0(ゼロ)の位置にY軸目盛りを表示するには
□投稿者/ ゆい -(2023/08/13(Sun) 13:21:19)

    分類:[VB.NET/VB2005 以降] 

    相変わらずの素人な質問ですみません。
    Windows11、VB2017です。
       
    このように0(ゼロ)を含んでのデータの場合には、
    必ず0(ゼロ)の位置にY軸目盛りを表示するにはどのようにすれば良いのか教えてください。
    サンプルプログラムの修正でお願いします。

    '乱数を生成
    Dim dat(20) As Single
    Dim rand As New Random()
    For i = 0 To 20
    dat(i) = rand.Next(-30, 65)
    Next

    '
    Dim ds As New DataSet
    Dim dt As New DataTable
    Dim dtRow As DataRow
    With dt.Columns
    .Add("数値", GetType(Single))
    End With
    ds.Tables.Add(dt)

    'データの追加
    For i = 0 To 20
    dtRow = ds.Tables(0).NewRow
    dtRow(0) = dat(i)
    ds.Tables(0).Rows.Add(dtRow)
    Next
    '----------------
    'Chart1 の描画
    '----------------
    'Chart に表示するデータソースを設定
    Chart1.DataSource = ds
    ' 折れ線
    Dim ore1 = Chart1.Series.Add("折れ線@")
    With ore1
    .ChartType = DataVisualization.Charting.SeriesChartType.Line
    .YValueMembers = "数値"
    End With
    'Y軸の最低最高
    Chart1.ChartAreas(0).AxisY.Minimum = -30
    Chart1.ChartAreas(0).AxisY.Maximum = 65
    'Y軸ラベル表示の間隔
    Chart1.ChartAreas(0).AxisY.Interval = 50
親記事 /過去ログ178より / 関連記事表示
削除チェック/

■102286  Re[7]: Chartの0(ゼロ)の位置にY軸目盛りを表示するには
□投稿者/ WebSurfer -(2023/08/14(Mon) 18:34:07)
    No102285 (ゆい さん) に返信

    >>そんなの知るか、自分さえよければ良いとか思ってますか?
    >
    > そのつもりは更々御座いませんが、

    だったら No102280 で聞かれたことに答えるぐらいのことをしてはいかが?
記事No.102279 のレス /過去ログ178より / 関連記事表示
削除チェック/

■102287  Re[7]: Chartの0(ゼロ)の位置にY軸目盛りを表示するには
□投稿者/ WebSurfer -(2023/08/14(Mon) 18:39:55)
    No102285 (ゆい さん) に返信

    もう一つ大事なことを言うのを忘れていました。

    >>わんくま掲示板を含めて、Q&A サイトは、「技術者同士の情報交換や相互サポート」など
    >>を行うという目的を持っていると思います。
    >
    > 謂わば独学で始めた全くの素人で、あなたさまの言われる技術者でも決してございません。

    技術者でないからというのは理由になりません。では、言い方を変えましょう。

    「コミュニティに参加している者同士の情報交換や相互サポート」の場です。

    もちろんあなたも「コミュニティに参加している者」です。
記事No.102279 のレス /過去ログ178より / 関連記事表示
削除チェック/

次の20件>

<< 0 | 1 >>

ヒット件数が多いので過去ログ178〜179 までの検索結果 / 過去ログ0からさらに検索→

パスワード/

- Child Tree -