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

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

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

全過去ログを検索

<< 0 >>
■5616  Re[5]: メモリ(ピクセルデータ)をポインタで読む方法について
□投稿者/ みやせ -(2006/08/18(Fri) 11:27:21)

    分類:[C#] 

    Hongliangさん、YASさんありがとうございます。
    やはりYASさんたちがいうようにすることで解決することができました。私の初歩的なミスでした。またよろしくお願いします。
記事No.5581 のレス / END /過去ログ5より / 関連記事表示
削除チェック/

■7606  Re[4]: フォームの表示方法
□投稿者/ arion -(2007/09/11(Tue) 14:54:04)
    >■No7597 (れい さん) に返信

    返信ありがとうございます!

    > はい。Formを組み合わせるのでも、Regionを使うのでもなく、
    > レイヤードウィンドウ1個で済ませるのがいいでしょう。
    >
    > 理由は下記2点。
    > ・ウィンドウの縁、タイトルバー、コントロールボックスなどが要らない。
    > ・ウィンドウの形を変える頻度が多い
    >
    > Form.Regionだと縁などが描かれてしまいますので、自分で処理しないといけません。
    > また、形を変えるたびにちらつく場合があります。
    > 複数のFormを組み合わせるのもちらついたり、重いのでダメです。
    >
    > レイヤードなら、はじめから全部自分で描くので、余計なことを考えなくてすみます。
    > また、形を変えたときのちらつきはありません。(ちらつかずに1回の描画が重くなるだけ)


    れいさんの言うとおり確かにレイヤードウィンドウを使うとよさそうですね!
    自分の言っている事がちゃんと伝わっているみたいで嬉しいです。

    しかし自分で調べてみたのですがまだいまいち理解できません。
    レイヤードウィンドウとはフォームを半透明とか透明にするものですよね?

    > レイヤードウィンドウ1個で済ませるのがいいでしょう。
    ということは作成するフォームは1つでよいということでしょうか?

    最初その作成したフォームを透明にしておいて領域を出たらそこのアイコンだけを表示させるということでしょうか?

    よろしくお願いします。
記事No.7596 のレス /過去ログ20より / 関連記事表示
削除チェック/

■55143  Re[1]: 印刷結果について
□投稿者/ オショウ -(2010/11/18(Thu) 10:41:23)
    > プリンタから印刷結果を受け取ることは可能でしょうか?
    > 実際に紙が出力されたのか、
    > 電源が入ってなくて出なかったか、
    > 紙切れ、ジャムりなどです。
    > 理由は難しそうなので、せめて紙が出力されたかどうかだけでも取得したいのですが。。

      プリンターのドライバー次第です。

      尚、スプーラを経由すると、印字プロセスは印字完了となっても
      後から印字異常が返ってくることになるので、スプーラを経由さ
      せず、直接印字データをプリンターに送ると言う設定にしないと
      いろいろ面倒なプログラムを組むことになろうかと

      印字枚数や印字負荷、プリンタとの接続インターフェースの方式
      等々も影響する場合があります。

    以上。参考まで
記事No.55139 のレス /過去ログ92より / 関連記事表示
削除チェック/

■64933  Re[1]: datatable の fill 〜 updateについて
□投稿者/ 魔界の仮面弁士 -(2013/01/23(Wed) 09:20:40)
    No64932 (泣いてる子羊 さん) に返信
    > 同時実行違反 : UpdateCommandによって、処理予定の1レコードのうち0件が処理されました。

    n 行のレコードに対して INSERT / DELETE / UPDATE 操作を行ったものの、
    影響を受けたのは n 行ではなく 0 行だけだった、というエラーですね。


    > いままで何の問題もなく実行できていたのですが、今回作っているプログラムでは何をやっても解決できません。

    更新直前(CommandBuilder を適用した後)の DataAdapter に対して、
    InsertCommand / UpdateCommand / DeleteCommand の内容を
    確認してみてください。

    場合によっては、これらのコマンドを手動で差し替える必要があるかも知れません。



    > WEBでいろいろ情報を漁っていたところ、MYSQLの予約後をカラム名に使うと発生したりとか、
    > レコードに空白があるとだめだとか、あらゆる事を確かめてみましたが解決に至っていません。

    今まで経験したケースでは、下記のようなものがあります。

    ・テーブル名や列名に予約語が使われていた。

    ・日付時刻型のパラメーターが、日付型にマッピングされてしまい、
     時刻情報無しで比較されることで、正しいデータを参照できなくなっていた。

    ・更新元のテーブルに主キー列が含まれていなかったため、
     更新データの一意性を確保できなくなっていた。

    ・自動採番フィールドの取り扱いミスなど

    http://www.gizcollabo.jp/vbtomo/boards/vbdatabase_spread_2430.html
    http://dobon.net/vb/bbs/log3-39/24070.html
    http://dobon.net/vb/bbs/log3-42/25261.html
記事No.64932 のレス /過去ログ109より / 関連記事表示
削除チェック/

■90044  Re[1]: FolderBrowserDialogでネットワークのみ選択
□投稿者/ 魔界の仮面弁士 -(2019/02/01(Fri) 10:42:20)
    No90042 (yu さん) に返信
    > FolderBrowserDialogでネットワークのみを選択できるようにしたいです。

    そういう機能は無いと思います。

    無理矢理な方法として、

     typeof(FolderBrowserDialog)
      .GetField("rootFolder", BindingFlags.Instance | BindingFlags.NonPublic)
      .SetValue(folderBrowserDialog1, 0x12);

    とすれば、「デスクトップ\ネットワーク」をルート階層にできますが、
    その下の階層が展開される環境でしか使えなさそう。
記事No.90042 のレス /過去ログ155より / 関連記事表示
削除チェック/

■90047  Re[2]: FolderBrowserDialogでネットワークのみ選択
□投稿者/ yu -(2019/02/01(Fri) 12:15:08)
    魔界の仮面弁士 様

    回答ありがとうございます。

    やはりネットワークの階層を展開できる環境ではなかったため、表示できませんでした。

    無理矢理な方法、と仰いましたが、なるほど!と思わされる方法でした。
    よろしければ、"0x12"がネットワークの番号だとどのように調べたのか教えていただけませんか?
    とても気になってしまいました…。


    No90044 (魔界の仮面弁士 さん) に返信
    > ■No90042 (yu さん) に返信
    >>FolderBrowserDialogでネットワークのみを選択できるようにしたいです。
    >
    > そういう機能は無いと思います。
    >
    > 無理矢理な方法として、
    >
    >  typeof(FolderBrowserDialog)
    >   .GetField("rootFolder", BindingFlags.Instance | BindingFlags.NonPublic)
    >   .SetValue(folderBrowserDialog1, 0x12);
    >
    > とすれば、「デスクトップ\ネットワーク」をルート階層にできますが、
    > その下の階層が展開される環境でしか使えなさそう。
記事No.90042 のレス / END /過去ログ155より / 関連記事表示
削除チェック/

■90057  Re[3]: FolderBrowserDialogでネットワークのみ選択
□投稿者/ 魔界の仮面弁士 -(2019/02/01(Fri) 16:05:04)
    2019/02/02(Sat) 10:15:12 編集(投稿者)

    # 解決済みマークはつけたままにしておきます。

    No90047 (yu さん) に返信
    > 無理矢理な方法、と仰いましたが、なるほど!と思わされる方法でした。

    No90044 はリフレクションで、Backing-Field 変数に強制代入していますが、
    これは要するに、下記に相当する処理であることを意味します。

     const int CSIDL_NETWORK = 0x0012
     folderBrowserDialog1.RootFolder = (System.Environment.SpecialFolder)CSIDL_NETWORK;


    しかし、RootFolder プロパティの setter は下記の実装になっており、そのままだと例外で失敗するため、
    それを回避するため、rootFolder メンバーへの直接代入で回避していたというわけで。

     if (!Enum.IsDefined(typeof(System.Environment.SpecialFolder), value))
     {
      throw new InvalidEnumArgumentException("value", (int)value, typeof(System.Environment.SpecialFolder));
     }
     rootFolder = value;


    > よろしければ、"0x12"がネットワークの番号だとどのように調べたのか教えていただけませんか?

    0x12 は、"ネットワーク" フォルダーを意味する識別子です。
    Windows SDK 上では CSIDL_NETWORK 定数として定義されています。(see: ShFolder.h , KnownFolders.h)


    =======================
    同じ処理を COM 版で書くとこんな感じ。

    Shell32.dll を参照設定した上で、
    ShellSpecialFolderConstants 列挙型の ssfNETWORK を利用できます。


    const int BIF_NEWDIALOGSTYLE = 0x40;
    const int BIF_NONEWFOLDERBUTTON = 0x200;

    int Hwnd = (int)(long)Handle;
    string Title = "フォルダを選択して下さい";
    int Options = BIF_NEWDIALOGSTYLE | BIF_NONEWFOLDERBUTTON;
    object RootFolder = Shell32.ShellSpecialFolderConstants.ssfNETWORK;

    Shell32.Shell sh = new Shell32.Shell();
    Shell32.Folder fo = sh.BrowseForFolder(Hwnd, Title, Options, RootFolder);

    string selectedFolder = null;
    if ( fo != null)
    {
      Shell32.FolderItems fis = fo.Items();
      Shell32.FolderItem fi = fis.Item(Type.Missing);
      selectedFolder = fi.Path;
      Marshal.ReleaseComObject(fi);
      Marshal.ReleaseComObject(fis);
      Marshal.ReleaseComObject(fis);
      Marshal.ReleaseComObject(fo);
    }
    Marshal.ReleaseComObject(sh);

    return selectedFolder;

    =======================
    参照設定したくなければ、レイトバインドで。

    dynamic sh = Activator.CreateInstance(Type.GetTypeFromProgID("Shell.Application"));
    dynamic fo = sh.BrowseForFolder((int)(long) Handle, "フォルダを選択して下さい", 0x240, 0x12);
    string selectedFolder = null;
    if ( fo != null)
    {
      dynamic fis = fo.Items();
      dynamic fi = fis.Item();
      selectedFolder = fi.Path;
      Marshal.ReleaseComObject(fi);
      Marshal.ReleaseComObject(fo);
    }
    Marshal.ReleaseComObject(sh);
    return selectedFolder;


    =======================
    上記 COM の BrowseForFolder メソッドや
    .NET の FolderBrowserDialog クラスというものは、
    SHBrowseForFolder という API をカプセル化したものです。
    https://docs.microsoft.com/en-us/windows/desktop/api/shlobj_core/nf-shlobj_core-shbrowseforfolderw
    https://docs.microsoft.com/en-us/windows/desktop/api/shlobj_core/nf-shlobj_core-shbrowseforfoldera
    https://referencesource.microsoft.com/#System.Windows.Forms/winforms/Managed/System/WinForms/FolderBrowserDialog.cs,94edc2b722c18d1f
記事No.90042 のレス / END /過去ログ155より / 関連記事表示
削除チェック/

■90066  Re[4]: FolderBrowserDialogでネットワークのみ選択
□投稿者/ yu -(2019/02/04(Mon) 02:54:26)
    2019/02/04(Mon) 02:57:08 編集(投稿者)
    魔界の仮面弁士 様

    すごい…なるほど。
    設定された識別子以外で設定するのは、特にC#ではやはり難しいですね。

    実際にWindows SDK のコードで確認するには開発ツールのダウンロードが必要なようですね。
    今の開発環境だとすぐには確認できず残念です。

    初心者ながらに色々と調べてみましたが、知識不足でせっかく教えていただいた内容を
    全ては理解しきれておらず大変申し訳ないですが、非常に勉強になりました。

    ご回答いただきまして本当にありがとうございます。


    No90057 (魔界の仮面弁士 さん) に返信
    > 2019/02/02(Sat) 10:15:12 編集(投稿者)
    >
    > # 解決済みマークはつけたままにしておきます。
    >
    > ■No90047 (yu さん) に返信
    >>無理矢理な方法、と仰いましたが、なるほど!と思わされる方法でした。
    >
    > No90044 はリフレクションで、Backing-Field 変数に強制代入していますが、
    > これは要するに、下記に相当する処理であることを意味します。
    >
    >  const int CSIDL_NETWORK = 0x0012
    >  folderBrowserDialog1.RootFolder = (System.Environment.SpecialFolder)CSIDL_NETWORK;
    >
    >
    > しかし、RootFolder プロパティの setter は下記の実装になっており、そのままだと例外で失敗するため、
    > それを回避するため、rootFolder メンバーへの直接代入で回避していたというわけで。
    >
    >  if (!Enum.IsDefined(typeof(System.Environment.SpecialFolder), value))
    >  {
    >   throw new InvalidEnumArgumentException("value", (int)value, typeof(System.Environment.SpecialFolder));
    >  }
    >  rootFolder = value;
    >
    >
    >>よろしければ、"0x12"がネットワークの番号だとどのように調べたのか教えていただけませんか?
    >
    > 0x12 は、"ネットワーク" フォルダーを意味する識別子です。
    > Windows SDK 上では CSIDL_NETWORK 定数として定義されています。(see: ShFolder.h , KnownFolders.h)
    >
    >
    > =======================
    > 同じ処理を COM 版で書くとこんな感じ。
    >
    > Shell32.dll を参照設定した上で、
    > ShellSpecialFolderConstants 列挙型の ssfNETWORK を利用できます。
    >
    >
    > const int BIF_NEWDIALOGSTYLE = 0x40;
    > const int BIF_NONEWFOLDERBUTTON = 0x200;
    >
    > int Hwnd = (int)(long)Handle;
    > string Title = "フォルダを選択して下さい";
    > int Options = BIF_NEWDIALOGSTYLE | BIF_NONEWFOLDERBUTTON;
    > object RootFolder = Shell32.ShellSpecialFolderConstants.ssfNETWORK;
    >
    > Shell32.Shell sh = new Shell32.Shell();
    > Shell32.Folder fo = sh.BrowseForFolder(Hwnd, Title, Options, RootFolder);
    >
    > string selectedFolder = null;
    > if ( fo != null)
    > {
    >   Shell32.FolderItems fis = fo.Items();
    >   Shell32.FolderItem fi = fis.Item(Type.Missing);
    >   selectedFolder = fi.Path;
    >   Marshal.ReleaseComObject(fi);
    >   Marshal.ReleaseComObject(fis);
    >   Marshal.ReleaseComObject(fis);
    >   Marshal.ReleaseComObject(fo);
    > }
    > Marshal.ReleaseComObject(sh);
    >
    > return selectedFolder;
    >
    > =======================
    > 参照設定したくなければ、レイトバインドで。
    >
    > dynamic sh = Activator.CreateInstance(Type.GetTypeFromProgID("Shell.Application"));
    > dynamic fo = sh.BrowseForFolder((int)(long) Handle, "フォルダを選択して下さい", 0x240, 0x12);
    > string selectedFolder = null;
    > if ( fo != null)
    > {
    >   dynamic fis = fo.Items();
    >   dynamic fi = fis.Item();
    >   selectedFolder = fi.Path;
    >   Marshal.ReleaseComObject(fi);
    >   Marshal.ReleaseComObject(fo);
    > }
    > Marshal.ReleaseComObject(sh);
    > return selectedFolder;
    >
    >
    > =======================
    > 上記 COM の BrowseForFolder メソッドや
    > .NET の FolderBrowserDialog クラスというものは、
    > SHBrowseForFolder という API をカプセル化したものです。
    > https://docs.microsoft.com/en-us/windows/desktop/api/shlobj_core/nf-shlobj_core-shbrowseforfolderw
    > https://docs.microsoft.com/en-us/windows/desktop/api/shlobj_core/nf-shlobj_core-shbrowseforfoldera
    > https://referencesource.microsoft.com/#System.Windows.Forms/winforms/Managed/System/WinForms/FolderBrowserDialog.cs,94edc2b722c18d1f
記事No.90042 のレス / END /過去ログ155より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -