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

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

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

No.98561 の関連記事表示

<< 0 >>
■98561  Re[5]: 「複数のChartでのマウス位置による数量表示」の追加です
□投稿者/ 魔界の仮面弁士 -(2021/12/02(Thu) 09:50:57)
    2021/12/02(Thu) 10:54:17 編集(投稿者)

    No98560 (ゆい さん) に返信
    > これではChart2、Chart3にマウスがある時にもLabel1に数量が表示もされてしまいます。

    Chart2 の上にマウスが載っているときに、Char1 用の Label1 が更新されるのを避けたいのですね。

    MouseMove 時にまとめて Invalidate していること自体は、ライン描画のための正しい実装だと思います。
    その上で、Label への反映が問題になってしまうのは、 No98520 で御自身がお書きになった変数 ZaKa の算出処理部の実装によるものでしょう。


    現状の実装だと、Y 軸が 0 以上の値のみを扱うチャートであったとして、
    マウス座標が 0 未満の位置(プロットエリア外)を指していたときには、
    ラベルを書き換えていますよね?
    同様に、最大値を超える位置であっても書き換わっています。
    そしてそれは、別の Chart 上にマウス座標があった時でも変わりません。

    先の算出式では、Minimum と Maximum の相対量から、マイナス値を算出して
    変数 ZaKa に代入し、それをそのまま Label に表示されていましたよね。
    見直すべきはソコです。

    つまり、今回の目的を果たすなら、If ステートメントを使って
     「マウス座標が範囲外だったら Label を更新しない(あるいは空欄とする)」
    という実装にすることで、簡単に実装できるでしょう。
    そうすれば、Chart2 の上にマウスが載っているときに、Char1 用の Label1 が更新される事象を解消できるはずです。

    Label が更新される座標範囲を、それぞれの Chart 全体とすることもできますし、
    あるいは各 Chart のプロットエリア内だけを対象とすることもできるでしょうね。


    >>そもそも「コンストラクタ」って分かりますかね?
    > 自慢ではないですが当然の如く初めて。
    > でも便利そうですね、機会あれば使ってみることにします。

    Form1 のコード中に、直接「Public Sub New()」と書いて Enter した場合でも同じものが作られます。
    コンストラクタは、『オブジェクトが生成される時に一度だけ呼び出される処理』であり、
    Load イベントのような再入が起こりません。Load と使い分けてみてください。


    ちなみに、Form のコンストラクタ中に自動で用意される
     ' この呼び出しはデザイナーで必要です。
     InitializeComponent()
    と記述されている行は、フォームデザイナーで設定した内容を適用する処理です。

    InitializeComponent の部分を右クリックして [定義へ移動] を選択すると、
    Form1.designer.vb の該当行が表示されます。それを見ると、デザイナーによって
    自動生成された Chart や Label 等の情報が並んでいることを確認できるかと思います。

    InitializeComponent が呼び出されるまでは、コントロールはまだ配置されていません。
    そのため、今回の YLables への登録を行う場合には、必ずその前に
    InitializeComponent が呼び出されている必要があることに注意しましょう。これが先の回答で
    「コンストラクタ内の InitializeComponent() 呼び出しの『後』に移動させる」と書いた所以です。



    >>最近は "〇" (漢数字のゼロ) を使う人が増えているのは何故でしょうね。
    > 漢数字のゼロは知らないですが、日本語ではないからでしょうか??

    伏字部分を「まるまる」などと読んでいる人であれば、丸記号の方が自然だと思うのですが、
    そもそも「まるまる」という読み方がマイナーだったりするのかな…と思いましてね。

    たとえば「Private Sub 〇〇〇()」を「プライベート サブ ゼロゼロゼロ」と
    読んでいる人なら、○ (丸記号)ではなく、〇 (ゼロ)の文字を使う方が自然なわけで。

    ※関東圏の昔の TV 番組に、「午後は○○(ごごはまるまる)」ってのがあったので
     自分の認識が マルマル 読みに引っ張られていているのかもしれないと思ってみたり。
記事No.98552 のレス /過去ログ171より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -