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

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

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

No.79393 の関連記事表示

<< 0 >>
■79393  分数を/を使わず上下に表示する方法
□投稿者/ poco -(2016/03/29(Tue) 19:19:41)

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

    初心者で、また、質問も初めてなので、質問内容に不備があったら申し訳ありません。

    VB2010を使用してラベルに分数を表示したいのですが、
    表示する際、A/Bではなく、数学で使うように表示したいと思っています。

    例えば、
    a+b−a/b    ではなく、

    .     a
    a+b−----
    .     b

    みたいな感じに表示したいと思っています。

    ラベルを三行準備して、上記のようにAAで表示するくらいしか思いつかないのですが、
    何かスマートな方法があるでしょうか。
親記事 /過去ログ134より / 関連記事表示
削除チェック/

■79397  Re[1]: 分数を/を使わず上下に表示する方法
□投稿者/ 魔界の仮面弁士 -(2016/03/30(Wed) 10:39:02)
    2016/03/30(Wed) 10:40:20 編集(投稿者)

    No79393 (poco さん) に返信
    > 初心者で、また、質問も初めてなので、質問内容に不備があったら申し訳ありません。

    今回の案件は、実現難易度が高めだと思います。


    > ラベルを三行準備して、上記のようにAAで表示するくらいしか思いつかないのですが、

    Label だと、改行または複数のラベルで表現するぐらいが限界だと思います。



    > VB2010を使用してラベルに分数を表示したいのですが、

    ラベルだけでは、Office 付属の「Microsoft 数式エディタ」のような表現は無理でしょう。

    C:\Program Files (x86)\Common Files\microsoft shared\EQUATION\EQNEDT32.EXE
    https://support.microsoft.com/ja-jp/kb/881775
    https://support.office.com/ja-jp/article/6eac7d71-3c74-437b-80d3-c7dea24fdf3f


    数式の内容を、プログラムから動的に指定する必要があるのなら、
    PictureBox の Paint イベントを利用して、e.Graphics に対して
    座標指定で線や数字を描画していくぐらいしかありません。
    初心者が手を出すには、かなり面倒なコードになるでしょう。


    もしも数式の内容が固定的なのであれば、Word の数式エディタで作成した数式をコピーし、
    それを PictureBox に「画像」として貼り付けておくという手もありますけれどね。


    なお、実行時にユーザーに数式を編集させる必要があるのなら、
    こういったものがあります。


    WinForm 用数式エディタコンポーネント(有償製品:体験版あり)
    http://othercontrols.com/en/products/mathexpressioneditorlight/

     'ユーザー入力用パレットを表示
     Me.MathControl1.Palette.Visible = True
     '数式を表示
     Me.MathControl1.LoadFromString("a+b-a/b")


    VB.NET 2003 WebApp サンプル & C# 2003 WinForm サンプル
    http://www.codeproject.com/Articles/11406/Enable-Your-Users-to-Write-Math-Equations-in-Your

     マイムテフ(MimeTeX)の DLL を利用しているようです。
     数式は画像として取得されるようですが、当方環境では
     VB2010 で動かせるようにはできませんでした。


    WPF 版 C# ソース付き 数式エディタソフト
    https://github.com/kashifimran/math-editor

     今回の要件には合わないと思いますが、参考情報として。
記事No.79393 のレス /過去ログ134より / 関連記事表示
削除チェック/

■79396  Re[1]: 分数を/を使わず上下に表示する方法
□投稿者/ shu -(2016/03/30(Wed) 10:24:34)
    No79393 (poco さん) に返信

    Graphicsを取得して自分で描画するとか

    数式表示用のコントロールを手に入れるとか
記事No.79393 のレス /過去ログ134より / 関連記事表示
削除チェック/

■79399  Re[2]: 分数を/を使わず上下に表示する方法
□投稿者/ shu -(2016/03/30(Wed) 11:07:56)
    No79396 (shu さん) に返信
    
    Graphicsを取得して自分で描画する例:
    
        Private Sub Label1_Paint(sender As Object, e As System.Windows.Forms.PaintEventArgs) Handles Label1.Paint
            Dim g = e.Graphics
    
            Using fnt = New Font("MS ゴシック", 10.5!, FontStyle.Regular)
                g.DrawString("c", fnt, Brushes.Black, 50, 0)
                g.DrawString("a + b - ", fnt, Brushes.Black, 0, 10)
                g.DrawString("d", fnt, Brushes.Black, 50, 20)
                g.DrawLine(Pens.Black, 50, 20, 60, 20)
            End Using
    
        End Sub
    
    実際は数式に合わせて座標や描画要素を変える必要があるかと思います。
    
記事No.79393 のレス /過去ログ134より / 関連記事表示
削除チェック/

■79395  Re[1]: 分数を/を使わず上下に表示する方法
□投稿者/ ジャン -(2016/03/30(Wed) 10:17:02)
    手っ取り早い方法としては、
    お絵描きソフトで分数式が描かれた画像を作成し、
    PictureBoxにそれに表示する方法ですが、
    プログラム内で分数式の内容を変更したい場合は、
    オーナードローを使う方法があります。
    この方法だと、前者よりも綺麗に表示されますが、
    難易度は高くなります。
記事No.79393 のレス /過去ログ134より / 関連記事表示
削除チェック/

■79403  Re[2]: 分数を/を使わず上下に表示する方法
□投稿者/ poco -(2016/03/30(Wed) 19:16:02)
    練習でお絵かきソフト作ったのに、Graphicsの存在すら忘れてました。

    というか、予想してましたが、やはり便利なものはないんですね・・・

    No79399にて書いていただいたものを参考にちょっとやってみます。
記事No.79393 のレス /過去ログ134より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -