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

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

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

全過去ログを検索

<< 0 | 1 >>
■7088  Re[8]: OnCellClickの使い方
□投稿者/ επιστημη -(2006/10/02(Mon) 23:35:18)
>

    分類:[VC++(C++/CLI)] 

    んー…この質問に限らず、なんかこうキモとなるカラクリの習得をすこーんとすっ飛ばして
    小手先だけでどうにかならんかとぢたばたしてるような印象を受けますねぃ。

記事No.7010 のレス /0過去ログ6より / 関連記事表示
削除チェック/

■11850  Re[1]: リング0?
□投稿者/ Hongliang -(2007/12/22(Sat) 09:26:51)
>
    他のプロセスのメモリ空間はマネージできないので。
    頑張って Win32API を駆使してください。
    ヘルプの「アンマネージ コードとの相互運用」以下を熟読しておきましょう。
記事No.11845 のレス /過去ログ26より / 関連記事表示
削除チェック/

■13663  Re[1]: .NETのVersion対応について
□投稿者/ はつね -(2008/02/01(Fri) 11:15:16)
    No13659 (K2E さん) に返信
    > 最悪、Visual Studio2003等1.1に対応したもので作成し直しかな
    > とも思っていますが、みなさんはこのように.NETFrameworkの環境
    > に対応したリリースを行う場合どのように対応されていますか?

    これをおこなうか、.NET Framework 2.0を実行環境に入れるかどちらかかな。
記事No.13659 のレス /過去ログ29より / 関連記事表示
削除チェック/

■17080  Re[3]: コンソールアプリケーションでメッセージボックスを出すには
□投稿者/ ミケ -(2008/04/16(Wed) 13:45:10)
    No17077 (ぽぴ王子 さん) に返信

    お世話になっております。
    ご回答ありがとうございます。

    > プロジェクトのプロパティを表示して
    > 「参照」タブ
    > 「追加」ボタンを押して「System.Windows.Forms」を参照追加
    > こうすることで
    >  System.Windows.Forms.MessageBox.Show("あーあーあーてすとてすとえムナウ28歳")
    > とか書けるようになると思います。

    System.Windows.Forms.dll を .Netの参照に追加し、
    System.Windows.Forms.MessageBox.Show("あーあーあーてすとてすとえムナウ28歳")

    を記入しますと、起動時刻にデバッガが立ち上がり
    エラーメッセージ
    System.InvalidOperationException' のハンドルされていない例外がsystem.windows.forms.dllで発生しました。
    追加情報:アプリケーションが UserInteractive モードで実行されていないときに、モーダル ダイアログまたは
    フォームを表示することは有効な操作ではありません。サービス アプリケーションからの通知を表示するには、
    ServiceNotification または DefaultDesktopOnly スタイルを指定してください。

    が上がりました。

    何か他に注意することが必要でしょうか。

    もう一つの記事のご返信ありがとうございます。
    後ほどお返事させてください。

記事No.17070 のレス /過去ログ35より / 関連記事表示
削除チェック/

■48457  WPF書籍について
□投稿者/ 火男 -(2010/04/07(Wed) 04:46:51)

    分類:[C#] 

    これからWPFでアプリを作ろうと思っているんですが、全然触ったことないので
    何かお薦めの入門書籍とかないでしょうか?
    Windows Formのアプリは作った経験有りです。

    そんなグラフィカルなアプリ作る気はあまりないんですが、描画関係が強そうなのでやってみたいです。
    Formだと結構ちらつきがどうこうの時にダブルバッファをいちいち使ったりしないといけないんで
    そういうの意識しなくてもいいのかなーと。

    Amazonでちょっとみてみたんですが、どれも評価が悪いか
    評価良いのは入門書籍じゃなくて、中級者以上向けのもっと極めたい人用とかでした。

    言語はできればC#で書かれていると読みやすくて助かります。
    VBでも読めなくはないんですが、あまり使ってないので。
親記事 /過去ログ82より / 関連記事表示
削除チェック/

■54695  Re[1]: C#でAccess2007のパスワードを変更
□投稿者/ shu -(2010/10/29(Fri) 11:59:51)
    No54689 (天野 さん) に返信
    > mdbファイルのパスワードを変更することはCompactDatabase(OldDb, NewDb);で今まで可能だったのですが、新しいファイル形式(accdb)のパスワードをC#から変更する方法が分からなくて困っています。ご存知の方がおられましたら教えてもらえませんか?
    >
    Database.NewPassword(Old,New)でどうです?
記事No.54689 のレス /過去ログ91より / 関連記事表示
削除チェック/

■68607  Re[1]: 配列の参照に関する質問
□投稿者/ (こ) -(2013/10/31(Thu) 18:30:07)
    > unsigned char a[20][5];
    >
    > void foo( ??? ) // ???の処の書き方は分かりません。

    void foo(unsigned char (*b)[5])
    void foo(unsigned char b[][5])
    void foo(unsigned char b[20][5])

    お好きなものをどうぞ。
    呼び出しはどれも foo(a); でいけます。
記事No.68605 のレス /過去ログ116より / 関連記事表示
削除チェック/

■69642  Re[3]: シンボルの検索結果をすべてコピー
□投稿者/ shu -(2014/01/16(Thu) 09:28:36)
    No69641 (morimori さん) に返信
    > ■No69636 (shu さん) に返信
    >>■No69634 (morimori さん) に返信
    >>
    >>目的は何でしょう?
    >>その手段以外で方法があるかもしれません。
    >
    > たとえばこのように、メッセージボックスを使っている部分の一覧を作って
    > 修正時間の目安を考えたり、修正個所の特定、また修正による影響を考える材料にしようと考えております。
    >
    > フォルダ名\Form1.cs,(23, 24),MessageBox.Show("test1");
    > フォルダ名\Form1.cs,(28, 24),MessageBox.Show("test2");
    > フォルダ名\Form1.cs - (33, 24), MessageBox.Show("test3");

    この例であればMessageBoxをキーワードにして全ファイル検索をすればよい気がします。

    変数の使用箇所を見る場合でも単純な名称のものでなければ同様の方法が補助的に使用できるかと思います。

記事No.69634 のレス /過去ログ119より / 関連記事表示
削除チェック/

■83211  PrintPreviewControl の表示方法について
□投稿者/ 夜叉丸 -(2017/03/13(Mon) 10:12:55)

    分類:[.NET 全般] 

    EPSON TM-m10 で印刷をするのに
    PrintDocument(pdoc)
    PrintPreviewControl(ppc)
    を使用してプレビューを表示しています。

    用紙サイズは
    A4 210x297 mm
    LT 8.5x11 in
    ハガキ 100x148 mm
    RollPaper 58x297 mm

    が存在し、RollPaper 58x297 mm を使用します。
    pdoc の PrintPage で描画を行った時に表示領域のみ
    印刷を行って、カットされますが、

    ppc 上では 297mm分の縦長の表示がそのまま行われています。
    実際に印刷されて排出される長さの分で表示したいのですが
    どうすればよいのでしょうか?
親記事 /過去ログ142より / 関連記事表示
削除チェック/

■83239  Re[1]: PrintPreviewControl の表示方法について
□投稿者/ 魔界の仮面弁士 -(2017/03/14(Tue) 13:53:36)
    No83211 (夜叉丸 さん) に返信
    > PrintDocument(pdoc)
    > PrintPreviewControl(ppc)
    > を使用してプレビューを表示しています。

    OriginAtMargins を true にすると余白の扱いが変化すると思いますが
    それでも吸収しきれないでしょうか。

    どうしても合わないようなれば、printDocument1.PrintController.IsPreview で
    条件分岐して描画位置を調整してみるのは如何でしょう。
記事No.83211 のレス /過去ログ142より / 関連記事表示
削除チェック/

■83245  Re[2]: PrintPreviewControl の表示方法について
□投稿者/ 夜叉丸 -(2017/03/14(Tue) 17:31:25)
    No83239 (魔界の仮面弁士 さん) に返信

    > OriginAtMargins を true にすると余白の扱いが変化すると思いますが
    > それでも吸収しきれないでしょうか。
    >
    OriginAtMargins を trueにしてみましたが何も変化がないように思います。

    > どうしても合わないようなれば、printDocument1.PrintController.IsPreview で
    > 条件分岐して描画位置を調整してみるのは如何でしょう。

    描画位置ではなくて、PrintPreviewControl で表示されている用紙のサイズが
    58x297 mm (縦長)になっています。
    プレビュー画面に58x100の範囲で描画すると、100の位置で自動でカットされます。
    実際に印刷されるのが 58x100だったとしても表示が58x297の縦長で表示されるのを
    プレビュー画面の用紙サイズを58x100のサイズで表示したいのです。
    pdoc.PrinterSettings.PaperSizesのなかに
    「ユーザ定義」に関する設定が選択できるのであればできそうな気もするのですが、
    このプリンターにはありませんでした。

記事No.83211 のレス /過去ログ142より / 関連記事表示
削除チェック/

■83247  Re[3]: PrintPreviewControl の表示方法について
□投稿者/ 魔界の仮面弁士 -(2017/03/14(Tue) 19:30:33)
    No83245 (夜叉丸 さん) に返信
    > OriginAtMargins を trueにしてみましたが何も変化がないように思います。

    あれ。余白サイズや用紙サイズが変わるわけでは無いですが、
    e.Graphics.ResetTransform() しないかぎり、
    原点座標がずれたままになったような…。

    そもそも、pdoc.DefaultPageSettings.Margins や
    QueryPageSettings イベントの e.PageSettings.Margins では
    余白サイズを幾つに指定しているのでしょうか。


    > 実際に印刷されるのが 58x100だったとしても表示が58x297の縦長で表示されるのを
    > プレビュー画面の用紙サイズを58x100のサイズで表示したいのです。

    pdoc.DefaultPageSettings.PaperSize = new PaperSize("任意の名前", 228, 394);
    ppc.InvalidatePreview();

    ということではなく?


    > このプリンターにはありませんでした。
    コントロールパネルの[デバイスとプリンター]あたりを参照していると思いますが、
    用紙設定を追加するのは、『プリンターのプロパティ』ダイアログではなく、
    『プリント サーバーのプロパティ』ダイアログの方ですよ。
    http://www.nsgd.co.jp/nsd/NSDGoods/mswin_tl/TA12DK5/W8_Cp4.JPG

    コントロールパネルで用紙名を事前定義しているのなら、new PaperSize せずとも
    TM-m10 なら PaperSizes の一覧で返されます。どちらが良いのかはケースバイケースですが。



    No83243 (夜叉丸 さん) に返信
    > A4, LT, ハガキの設定値は読み込めますが、プリンター自体10cmの立方体なので
    > 給紙することはできませんし、設定しなくてもRollに印刷できてました。

    その点については、ドライバ設定次第ですね。

    デフォルトでは、用紙サイズ "Roll Paper 58 x 297 mm" が既定の用紙として設定されているはず。
    プリンタードライバーの[レイアウト]-[詳細設定]ボタンあたりで確認できるかと。


    > その後とりあえず、以下のコードを呼び出し、戻り値も True を確認しています。
    > pdoc.SetPaperSize("Roll Paper 58 x 297 mm");

    "SetPaperSize" という名前のメソッドは、PrintDocument どころか
    .NET Framework の他のクラスにも見当たらないですね。

    https://referencesource.microsoft.com/#q=SetPaperSize
    https://social.msdn.microsoft.com/Search/ja-JP?query=SetPaperSize


    もしかして拡張メソッドでしょうか?

    using System.Drawing.Printing;
    using System.Linq;

    public static class PrintDocumentExtensions
    {
     public static bool SetPaperSize(this PrintDocument pdoc, string paperName)
     {
      PaperSize p = pdoc.PrinterSettings.PaperSizes.OfType<PaperSize>().FirstOrDefault(_ => _.PaperName == paperName);
      if (p != null)
      {
       pdoc.DefaultPageSettings.PaperSize = p;
       return p == pdoc.DefaultPageSettings.PaperSize;
      }
      return false;
     }
    }
記事No.83211 のレス /過去ログ142より / 関連記事表示
削除チェック/

■83326  Re[4]: PrintPreviewControl の表示方法について
□投稿者/ 夜叉丸 -(2017/03/17(Fri) 11:50:40)
    No83247 (魔界の仮面弁士 さん) に返信

    >
    > 余白サイズを幾つに指定しているのでしょうか。

    印刷可能領域を最大にしたいので
    pdoc.DefaultPageSettings.Margins.Left = (int)(pdoc.DefaultPageSettings.HardMarginX);
    pdoc.DefaultPageSettings.Margins.Right = (int)(pdoc.DefaultPageSettings.HardMarginX);
    pdoc.DefaultPageSettings.Margins.Top = (int)(pdoc.DefaultPageSettings.HardMarginY);
    pdoc.DefaultPageSettings.Margins.Bottom = (int)(pdoc.DefaultPageSettings.HardMarginY);
    としています。

    >
    > pdoc.DefaultPageSettings.PaperSize = new PaperSize("任意の名前", 228, 394);
    > ppc.InvalidatePreview();
    >
    > ということではなく?

    すみませんでした。new して使用できるとは思いませんでした。
    インターネットで調べたのですが、
    pdoc.PrinterSettings.PaperSizes にあるものしか設定できないと


    pdoc_PrintPage で印字した部分を MakePrint 関数にして、
    印刷に必要なたてサイズを取得して、からpodc_PrintPage を呼び出すようにしました。
    で、いいのかな?

    ただ、プログラム上では155mmで印刷されるはずなのですが
    現状では140mmぐらいで印刷されています。

    この辺がうまくいきません。

    それから、プレビュー画面ではもちろん正常なのですが
    DrawLine と DrawString を同じ左位置を設定しているはずなのに
    同じ位置から印字されません。DrawLineの方が1mm右にずれている感じです。
    印字に合わせるとプレビューがおかしくなるし
    どうすればよいのかわかりません。






記事No.83211 のレス /過去ログ142より / 関連記事表示
削除チェック/

■83334  Re[5]: PrintPreviewControl の表示方法について
□投稿者/ 魔界の仮面弁士 -(2017/03/17(Fri) 12:29:24)
    No83326 (夜叉丸 さん) に返信
    >>余白サイズを幾つに指定しているのでしょうか。
    > 印刷可能領域を最大にしたいので
    > pdoc.DefaultPageSettings.Margins.Left = (int)(pdoc.DefaultPageSettings.HardMarginX);
    > pdoc.DefaultPageSettings.Margins.Right = (int)(pdoc.DefaultPageSettings.HardMarginX);
    > pdoc.DefaultPageSettings.Margins.Top = (int)(pdoc.DefaultPageSettings.HardMarginY);
    > pdoc.DefaultPageSettings.Margins.Bottom = (int)(pdoc.DefaultPageSettings.HardMarginY);
    > としています。

    上記は具体的に、どのような値になっていますか?

    プレビューのデフォルトマージンは 1 インチに設定されているはずです。
    (この値は、Margins クラスの既定値です)

    正しいハードマージンが取得できてないためにずれているのか、
    それともマージン指定は正しいのに、プレビューの表示がずれるのか
    問題点を切り分けてみて下さい。


    > すみませんでした。new して使用できるとは思いませんでした。
    > pdoc.PrinterSettings.PaperSizes にあるものしか設定できないと
    new して設定するプリンターもありますが、既存の用紙からしか選べないものもあります。
    このあたりはプリンタードライバーによって異なることなので、
    実際に環境に合わせて調整する必要があります。
    OS 側で設定した用紙サイズにしても、それがプリンタードライバー側に
    反映されるかどうかはまちまちですし。


    > それから、プレビュー画面ではもちろん正常なのですが
    > DrawLine と DrawString を同じ左位置を設定しているはずなのに
    文字の印刷は、プロポーショナルフォントでしょうか。等幅のものでしょうか。


    > 同じ位置から印字されません。DrawLineの方が1mm右にずれている感じです。
    実機は持っていないので、印字結果については情報を持ち合わせていません。
    質問を受けてドライバーをダウンロードしてみただけなので…済みません。

    ちなみに、Graphics クラスの原点座標は、プレビュー画面上のどの位置にある状態なのでしょうか?
記事No.83211 のレス /過去ログ142より / 関連記事表示
削除チェック/

■83335  Re[5]: PrintPreviewControl の表示方法について
□投稿者/ shu -(2017/03/17(Fri) 12:36:57)
    No83326 (夜叉丸 さん) に返信

    > それから、プレビュー画面ではもちろん正常なのですが
    > DrawLine と DrawString を同じ左位置を設定しているはずなのに
    > 同じ位置から印字されません。DrawLineの方が1mm右にずれている感じです。
    > 印字に合わせるとプレビューがおかしくなるし
    > どうすればよいのかわかりません。
    >
    全体の印字位置が変わるのではなく線と文字列の描画で相対的位置がプレビュー、印字
    でずれてしまうということでしょうか?
    DrawLine, DrawStringはどのような引数指定で描画されていますか?
記事No.83211 のレス /過去ログ142より / 関連記事表示
削除チェック/

■83240  Re[1]: PrintPreviewControl の表示方法について
□投稿者/ shu -(2017/03/14(Tue) 14:21:19)
    No83211 (夜叉丸 さん) に返信

    > が存在し、RollPaper 58x297 mm を使用します。
    pdocに対しRollPaperを使用する設定はどのように行っていますか?
記事No.83211 のレス /過去ログ142より / 関連記事表示
削除チェック/

■83243  Re[2]: PrintPreviewControl の表示方法について
□投稿者/ 夜叉丸 -(2017/03/14(Tue) 16:56:13)
    No83240 (shu さん) に返信

    > pdocに対しRollPaperを使用する設定はどのように行っていますか?

    A4, LT, ハガキの設定値は読み込めますが、プリンター自体10cmの立方体なので
    給紙することはできませんし、設定しなくてもRollに印刷できてました。
    その後とりあえず、以下のコードを呼び出し、戻り値も True を確認しています。

    pdoc.SetPaperSize("Roll Paper 58 x 297 mm");
記事No.83211 のレス /過去ログ142より / 関連記事表示
削除チェック/

■83246  Re[3]: PrintPreviewControl の表示方法について
□投稿者/ shu -(2017/03/14(Tue) 17:59:48)
記事No.83211 のレス /過去ログ142より / 関連記事表示
削除チェック/

■83341  Re[4]: PrintPreviewControl の表示
□投稿者/ 夜叉丸 -(2017/03/17(Fri) 13:39:38)
    2017/03/17(Fri) 14:01:00 編集(投稿者)
    2017/03/17(Fri) 14:00:06 編集(投稿者)
    2017/03/17(Fri) 13:59:20 編集(投稿者)
    2017/03/17(Fri) 13:58:20 編集(投稿者)
    2017/03/17(Fri) 13:41:39 編集(投稿者)

    e.Graphics.PageUnit = GraphicsUnit.Inch;
    を指定しています。

    ハードマージンの値は
    this.DefaultPageSettings.HardMarginX = 9;
    this.DefaultPageSettings.HardMarginY = 0;
    です。

    int iw = pdoc.DefaultPageSettings.PaperSize.Width - pdoc.DefaultPageSettings.Margins.Left - pdoc.DefaultPageSettings.Margins.Right;
    int ih = pdoc.DefaultPageSettings.PaperSize.Height - pdoc.DefaultPageSettings.Margins.Top - pdoc.DefaultPageSettings.Margins.Bottom;

    float xpos = (float)pdoc.DefaultPageSettings.Margins.Left * 58f / (float)pdoc.DefaultPageSettings.PaperSize.Width;
    float ypos = (float)pdoc.DefaultPageSettings.Margins.Top * 297f / (float)pdoc.DefaultPageSettings.PaperSize.Height;
    float wlen = (float)iw * 58f / (float)pdoc.DefaultPageSettings.PaperSize.Width;
    float hlen = (float)ih * 297f / (float)pdoc.DefaultPageSettings.PaperSize.Height;

    あとは、指定時にミリで指定したかったので位置情報は以下で求めました。
    (float)milli / 25.4f

    で、試行錯誤の結果
    印字するときの位置をいかにしてみました。
    いい札物を見たところ、見た目これでいけてるみたいなんですけど。

    横位置 (float)milli / 25.4f - ((this.PrintController.IsPreview) ? 0.0f : this.DefaultPageSettings.HardMarginX * 0.01f)
    縦位置 (float)milli / 25.4f - ((this.PrintController.IsPreview) ? 0.0f : this.DefaultPageSettings.HardMarginY * 0.01f);

    これでいいのでしょうか?

    あと、問題なのは
    求めた高さが140mm なので
    PaperSize("特殊", 228, 140f / 297f * 1169f);
    としたのですが、プレビュー画面の下側に余白が余っています。


     本来(理想)      現状
    のプレビュー      のプレビュー
    ┌───┐       ┌───┐
    │┌─┐│       │┌─┐│
    │└─┘│       │└─┘│
    └───┘       │     │←下側に隙間が多い
                    └───┘


    印刷結果
    ┌───┐
    │     │←送り出し部分なので仕方がない?
    │┌─┐│
    │└─┘│
    └───┘
         




記事No.83211 のレス /過去ログ142より / 関連記事表示
削除チェック/

■83342  Re[5]: PrintPreviewControl の表示
□投稿者/ 魔界の仮面弁士 -(2017/03/17(Fri) 16:37:06)
    No83341 (夜叉丸 さん) に返信
    > 求めた高さが140mm なので
    > PaperSize("特殊", 228, 140f / 297f * 1169f);

    PaperSize の引数は int 型のはず。
    float 値を渡したらコンパイルエラーになりませんか?


    高さを mm から算出するのであれば、正しい計算式は
     PaperSize("特殊", 228, (140 * 1000) / 254)
    です。※254ミリメートルはジャスト10インチ。

    元式にある 297f という値は、A4 サイズ(210mm × 297mm)から
    持ってきたのだと思いますが、提示頂いた計算式を使った場合、
    141mm や 142mm を指定した際に、僅かに短くなってしまいます。


    印刷処理についても、他に mm → inch 変換している箇所があるようなら、
    もう一度見直してみた方が良いかもしれません。
記事No.83211 のレス /過去ログ142より / 関連記事表示
削除チェック/

次の20件>

<< 0 | 1 >>

パスワード/

- Child Tree -