DOBON.NETプログラミング道掲示板

■ 「新規作成」から投稿できます。
■ マルチポストされた投稿を見つけたときは、その投稿に返信することによりご報告ください。その際は匿名で投稿し、マルチポストされている場所を併記してください。
■ スパム対策のため、メールアドレスの先頭に"_"という文字が付加されています。
RSS 2.0 RSS 2.0 | RSS 0.91 | 携帯電話用 | 自分専用のアイコンを使用するには | 掲示板への要望 | 管理人に連絡 | お気楽掲示板
■ 24時間以内に作成されたスレッドは New で表示されます。
■ 24時間以内に更新されたスレッドは UpDate で表示されます。

記事リスト ( )内の数字はレス数
NomalFILE.COPYでIOExceptionエラーが出る(11) | NomalToolStripMenuItemにShortcutKeysを指定した際の、元のコントロールを取得する方法(2) | Nomal動的にプロパティや変数の値の取得(4) | NomalVB6 ほかのアプリケーションを起動し そのアプリケーションは終了させる方法(4) | NomalMouseEventArgsのカレント座標(2) | Nomalリッチテキストボックスでの字間の調整(2) | NomalDrawImage でメモリ不足エラー(3) | Nomal必須コンポーネントの一覧に追加したい(0) | NomalCode128でバーコードが読み取れない(8) | NomalあるWindows10PCでビルドしたEXEがW8.1以下で実行エラー(5) | NomalApp.configのMy.Application.Log設定で使用できない属性が出る(0) | NomalVC++ → VB.Netに変換時に文法エラー(2) | Nomalvb2010を使用したmicrosoft Wordの任意の行の削除(0) | NomalVb.netからAccessへの接続について(3) | NomalSQL-Server Compact 4.0が表示されない(2) | Nomalバーコードの数字を非表示にしたい(2) | Nomal令和の日付への対応(3) | Nomalスクロールバーが出た時に高さを変えたい(4) | Nomal自作したアプリの発行元を明記したい(2) | NomalHTTP 417エラーを発生させるためのIIS設定はどうすればよいか(3) | Nomal起動ディスプレイの指定方法について(6) | NomalSystem.Threading.Thread.Sleep()と変数(2) | NomalVisual Studio DataTableの値のアクセスの仕方(2) | NomalDatagridviewのクリア(2) | NomalDataGridView 行の背景色の設定(2) | NomalListBoxにデータが表示されない(6) | NomalPIctureBox同士を論理合成したい(3) | NomalDrawString前のFillRectangle有無により文字の太さが違う理由について教えて下さい(3) | Nomalポルトガル語の登録(5) | NomalnumericUpDwonコントロールのvalue(2) | Nomalデータセット定義ファイルからDataTable(3) | NomalDataTableの構造が同じか調べるメソッド(2) | Nomalネットの画像の複数枚を重ね合わせたい(3) | Nomalリストを別フォームに渡す方法(9) | Nomal例外発生した場合に変数をcatchに渡したい(9) | NomalRejectChangesについて(2) | Nomal数字だけで構成されてるCSVフィールドが自動的に数値として解釈される(7) | NomalDataGridViewで検索をかける方法(3) | NomalDataGridViewの選択時の色を透明にしたい(3) | NomalPC機種によってスタートアップ画面が中央から左上にずれる、Fontがおかしくなる。(2) | Nomalタスクスケジュール登録時の例外メッセージ(2) | Nomal参照dllへの文字列引数をutf8で渡したい。(13) | Nomal管理者モードでクリック(2) | NomalVB2017でのインストーラ作成時のエラーについて(2) | Nomal文字列を8bit に戻してから UTF-8 に変換する方法(6) | NomalDatagridViewの行高さ変更について(4) | NomalWebRequest でメモリが解放されない(1) | NomalWebBrowserでWebページからのメッセージ(3) | NomalASP.NETから呼ばれているかどうか判定する方法(3) | NomalCA2213の警告が消えません(3) | NomalSQLServerテーブル内容をDataGridViewに表示するコードについて(6) | Nomaloo4oのAddTableをADOに移行したい(5) | Nomalデータバインド時のDataGridViewのカスタムソート(2) | NomalFunction プロシージャからの文字選択(1) | NomalMicrosoft Azure OCRのサンプルコード実行時エラー(2) | Nomal文字列構造体のListのソート(6) | NomalフォームコントロールへのDataBindingsでプロパティが相互反映されない(7) | NomalC# 現在のコンテキスト内にxxxという文字は存在しませんと出ます(3) | NomalWinFormsでWindows10のカメラアプリと連携したい(0) | NomalObject型からDecimalへの変換(2) | NomalWindows10(1803)からGetHostEntryでipv4が取得出来ない場合がある(2) | Nomalユーザーコントロールのプロパティが保存されない(2) | Nomal擬似言語をVBのプログラミングに変換(2) | Nomal「Environment.SpecialFolder.MyDocuments」の戻り値(2) | Nomalエクスプローラーのポインタ下のアイテムの取得(8) | NomalGIFで使うPNGファイルにおける容量削減について(5) | NomalProcess.StartでPDFファイルが開かない(Windows10)(3) | Nomal定数を複数繰り返す時(1) | Nomaloo4oのAddTableをODP.NETに移行したい(2) | NomalWindows標準TCPIPポートについて(4) | Nomalユーザーコントロールをツールバーに表示できない(8) | Nomalレンタルサーバからファイルを取得する方法を教えてください。(12) | NomalIEnumerableについてまとめてみました。(2) | NomalスレッドのwebbrowserでDocumentCompletedが来ない(2) | NomalList(of T)の抽出方法(3) | Nomalあまりにも基本的なことですが。(3) | NomalVB.netで作成されたプログラムからAccessのレポート印刷時にバーコードが表示されない(2) | NomalTextBoxの最大バイトを超えた分の文字を消す際の不具合(2) | Nomal折れ線グラフで基準値以内と基準値超過で色変え(6) | NomalFriend設定されているdllを利用することができますか?(3) | Nomal縦横変換してのTableの合算(4) | Nomalhtmlファイルへの関連付け(2) | NomalDataTableにSQLを実行できますか?(6) | Nomal.netからのAccessパスワード解除(2) | Nomal天気.jpに切断されます(2) | Nomalgifの容量をできるだけ軽くしたい(11) | NomalVB.NETでXMLファイルからデータを取得したい(2) | NomalAddStringの使い方(5) | NomalVS2015 Express インストール時のエラー(7) | Nomal2枚のPictureBoxを合成した上で描画したい(6) | Nomal自作ツールを標準ブラウザ候補に入れるには?(3) | NomalGraphicsUnit.Document使用時に解像度に合わせて位置決めしたい(2) | Nomal文字を円弧に沿って表示させたい(5) | Nomal【お知らせ】スマホでも見やすくなりました(0) | NomalVB.NetのWebBrowserでJavaScriptを呼び出したい(2) | Nomalサムネイルを新しい順にファイル名のみで表示したい。(4) | NomalEXCELでクリップボードを使用せずに書式付きでセルをコピー(5) | NomalDataGridView内でコンボボックスの選択をキャンセルする方法(1) | Nomalタブの色を他の処理から変更する方法(2) | Nomal同じデータセット内にテーブルの複製を作る方法(4) |



■記事リスト / ▼下のスレッド
■34273 / 親記事)  FILE.COPYでIOExceptionエラーが出る
□投稿者/ オフィス・ケイ 一般人(1回)-(2019/07/03(Wed) 09:25:29)
  • アイコン環境/言語:[WindowsCE6.0 VB.NET2008 .NET Compact FrameWork3.5 ] 
    分類:[.NET] 

    初めまして。
    初めて投稿します。

    現在、Vb.net2008でPDAの開発を行っています。
    PDAのOSはWindows CE6.0になります。
    フレームワークは.net CompactFrameWork3.5です。

    処理内容として、PDAで作成されたテキストファイルをネットワーク越しの共有フォルダにコピーしています。

    File.COYを使用しているのですが、稀にシステムエラー(IOException)で処理が落ちるのです。
    原因として何が考えられるのでしょうか?
    ネットワークは無線LANで接続しています。

    ----- 参考ソース ------

    sFileRireki:送信元ファイル
    sFileTRireki:送信先ファイル
    psInit.sUpLoadD:送信先フォルダ

    Try

    If File.Exists(sFileRireki) = True Then 'あり
    If Directory.Exists(psInit.sUpLoadD + "\") = False Then
    sErrMsg = "アップロード先フォルダが無いか、ネットワーク接続できませんでした。(COPY直前チェック)" + vbCrLf + psInit.sUpLoadD
    Return False
    End If
    IO.File.Copy(sFileRireki, sFileTRireki,True)
    '送信後、削除
    If File.Exists(sFileRireki) = True Then
    File.Delete(sFileRireki)
    Else
    Return False
    End If
    Else
    Return False
    End If
    Catch ex As Exception
    sErrMsg = "アップロード(履歴データ送信)に失敗しました。" + vbCrLf + vbCrLf + ex.Message
    Return False
    Finally
    Call sub_WriteLog(sErrMsg, "", pciLogModeE, "fnc_LogDataSend")
    End Try

    ------- エラー内容 ----------

    アップロード(履歴データ送信)に失敗しました。IOException

    以上になります。
    よろしくお願いします。

違反を報告
引用返信

▽[全レス11件(ResNo.7-11 表示)]
■34280 / ResNo.7)  Re[6]: FILE.COPYでIOExceptionエラーが出る
□投稿者/ オフィスケイ 一般人(2回)-(2019/07/10(Wed) 08:05:16)
  • アイコンNo34278に返信(魔界の仮面弁士さんの記事)

    > ユーザー環境でのみ発生する事象という事で追跡しにくいですが、
    > 母艦(ファイル送信先)側で監査ログを取るようにして、
    > 例外が発生した時刻付近のイベント ビューワーのログが、
    > いつもと違う内容になっていないか確認してみては如何でしょう。



    =>ご回答ありがとうございます。
     監査ログを取るなどして、もう少し調べてみたいと思います。


違反を報告
引用返信
■34281 / ResNo.8)  Re[2]: FILE.COPYでIOExceptionエラーが出る
□投稿者/ オフィスケイ 一般人(3回)-(2019/07/10(Wed) 08:07:18)
  • アイコンNo34279に返信(kikuさんの記事)
    >
     回答ありがとうございます。
     ご提示して頂いた内容を踏まえ、いろいろとやってみたいと思います。
     ありがとうございました。
違反を報告
引用返信
■34282 / ResNo.9)  Re[4]: FILE.COPYでIOExceptionエラーが出る
□投稿者/ オフィス・ケイ 一般人(2回)-(2019/07/16(Tue) 13:13:25)
  • アイコンNo34276に返信(魔界の仮面弁士さんの記事)
    > ■No34275に返信(オフィス・ケエイさんの記事)
    >
    > また、エラー発生時点の StackTrace を記録することは出来ますか?
    > (Exception の ToString でも OK です)

    => 下記にExceptionのToStringを取りました。

    System.IO.IOException:
    IOException
    場所 System.IO.__Error.WinIOError(Int32 errorCode, String str)
    場所 System.IO.File.InternalCopy(String sourceFileName, String destFileName, Boolean overwrite)
    場所 〇〇.mod_〇〇.fnc_LogDataSend(String& sErrMsg, StatusBar stbMsg)
    場所 〇〇.frm01_Main.ProcUpLoad()
    場所 〇〇.frm01_Main.btnSave_Click(Object sender, EventArgs e)
    場所 System.Windows.Forms.Control.OnClick(EventArgs e)
    場所 System.Windows.Forms.Button.OnClick(EventArgs e)
    場所 System.Windows.Forms.ButtonBase.WnProc(WM wm, Int32 wParam, Int32 lParam)
    場所 System.Windows.Forms.Control._InternalWnProc(WM wm, Int32 wParam, Int32 lParam)
    場所 Microsoft.AGL.Forms.EVL.EnterMainLoop(IntPtr hwnMain)
    場所 System.Windows.Forms.Application.Run(Form fm)
    場所 〇〇.mod_〇〇.Main()

    ※〇〇はユーザー名が入っているので、隠しますね。

    この内容で何かわかりますでしょうか?


違反を報告
引用返信
■34288 / ResNo.10)  Re[5]: FILE.COPYでIOExceptionエラーが出る
□投稿者/ 魔界の仮面弁士 大御所(1236回)-(2019/07/30(Tue) 11:49:55)
  • アイコン2019/07/30(Tue) 11:50:26 編集(投稿者)

    No34282に返信(オフィス・ケイさんの記事)
    > System.IO.IOException:
    > IOException
    > 場所 System.IO.__Error.WinIOError(Int32 errorCode, String str)
    > 場所 System.IO.File.InternalCopy(String sourceFileName, String destFileName, Boolean overwrite)
    > 場所 〇〇.mod_〇〇.fnc_LogDataSend(String& sErrMsg, StatusBar stbMsg)


    File.InternalCopy が呼ばれるのは、
    System.IO.File の Copy メソッドもしくは
    System.IO.FileInfo の CopyTo メソッドのいずれかですね。

    そして、InternalCopy が直接 __Error.WinIOError を呼び出す箇所は、
    No34274 で言う所の 3 または 13 のいずれかしかなく、
    最終結果が IOException であることから、13 であったと思われます。

    ただ、CopyFile API がどうしてそういう errorCode を吐いたのかは不明のまま…。


    No34275に返信(オフィス・ケエイさんの記事)
    > また、その後はリトライしても同様にIOExceptionで落ちます。
    >  プログラムを一旦終了し、再度起動させるとうまくいきます。

    通信障害などで失敗した時に、それを引きずってしまうのかな…。

    アプリケーションの再起動で回避できるようなので、
    No34276 の最後に書いたように、ファイルコピー用の exe を用意し、
    System.Diagnostics.Process.Start で呼び出す方式でリトライするとか。

    .NET Compact Framework 1.0 では Process クラスが無いけれど、
    .NET Compact Framework 2.0 以降なら使えるはず。
違反を報告
引用返信
■34292 / ResNo.11)  Re[3]: FILE.COPYでIOExceptionエラーが出る
□投稿者/ オフィス・ケイ 一般人(3回)-(2019/08/02(Fri) 08:09:08)
  • アイコンお世話になります。

    file.copyに失敗したとき、
    現状は1回の失敗でエラーを出力して終わっていましたが
    何回かリトライしてそれでもだめだったらエラーを吐き出す。
    ように修正して様子を見てみます。

    回答を頂いた皆様ありがとうございました。

    この件は一旦解決済みとさせていただきます。

解決み!
違反を報告
引用返信

■記事リスト / レス記事表示 → [親記事-9] [10-11]



■記事リスト / ▼下のスレッド / ▲上のスレッド
■34289 / 親記事)  ToolStripMenuItemにShortcutKeysを指定した際の、元のコントロールを取得する方法
□投稿者/ z-f 一般人(1回)-(2019/07/31(Wed) 15:13:57)
  • アイコン環境/言語:[C# WinForms .NETFramework 4.7.2 ] 
    分類:[.NET] 

    ContextMenuStripを使ってTextBox用のコンテキストメニューを作成中です。
    ToolStripMenuItemにShortcutKeysを指定して、メニューをクリックした時とショートカットキーを押した場合で同じ挙動をさせたいのですが、
    ショートカット使用時はthis.SourceControl=nullとなってしまい、使用元のTextBoxが取得できずに困っています。
    何か良い方法は無いでしょうか?
違反を報告
引用返信

▽[全レス2件(ResNo.1-2 表示)]
■34290 / ResNo.1)  Re[1]: ToolStripMenuItemにShortcutKeysを指定した際の、元のコントロールを取得する方法
□投稿者/ 魔界の仮面弁士 大御所(1237回)-(2019/07/31(Wed) 16:28:03)
  • アイコン2019/07/31(Wed) 16:30:06 編集(投稿者)

    No34289に返信(z-fさんの記事)
    > ショートカット使用時はthis.SourceControl=nullとなってしまい、使用元のTextBoxが取得できずに困っています。

    キーボードショートカットを使う際には、そのコントロールが
    アクティブになっているでしょうから、
    ActiveControl プロパティで判断できるかもしれません。


    private void toolStripMenuItem1_Click(object sender, EventArgs e)
    {
      // var menu = (ToolStripMenuItem)sender;
      var sourceControl = contextMenuStrip1.SourceControl ?? (ActiveForm ?? this).ActiveControl;
      if (sourceControl != null)
      {
        MessageBox.Show(sourceControl.Name);
      }
    }
違反を報告
引用返信
■34291 / ResNo.2)  Re[2]: ToolStripMenuItemにShortcutKeysを指定した際の、元のコントロールを取得する方法
□投稿者/ z-f 一般人(2回)-(2019/07/31(Wed) 18:13:40)
  • アイコンなるほど、ActiveControlは思いつかなかった。
    これでなんとかなりそうです。感謝。
解決み!
違反を報告
引用返信

■記事リスト / レス記事表示 → [親記事-2]



■記事リスト / ▼下のスレッド / ▲上のスレッド
■34283 / 親記事)  動的にプロパティや変数の値の取得
□投稿者/ ゆみと 一般人(1回)-(2019/07/28(Sun) 12:46:50)
  • アイコン環境/言語:[VS2010 C#] 
    分類:[.NET] 

    いつも参考にさせて頂いています。

    生成されたインスタンスに対して動的にプロパティや変数の値を取得を行いたいです。

    イメージ的には
    string getname = "Dai"."syou_A"."nameA";

    のような形で取得出来ないでしょうか。

    入れ子の入れ子?(言い方が正しいか分かりません)になった場合よく分からなくなってきました。

    public class Dai
    {
    public syou_A = new syouA();

    public syou_B {get; set;}

    public Dai()
    {
    this.syou_B = new syouB();
    }
    }

    public class syouA
    {
    public string nameA = nameA;
    public object ageA = ageA;
    }

    public class syouB
    {
    public string nameB { get; set;}
    public object ageB { get; set;}
    }

    public class Test
    {
    private dai = new Dai();

    public Test()
    {
    dai = new Dai();

    dai.syou_A.nameA = "なまえ";
    dai.syou_A.ageA = "99";

    dai.syou_B.nameB = "ナマエ";
    dai.syou_B.ageB = "0";
    }

    public void doutekiniSyutoku()
    {
    string getname = "Dai"."syou_A"."nameA";
    }
    }
違反を報告
引用返信

▽[全レス4件(ResNo.1-4 表示)]
■34284 / ResNo.1)  Re[1]: 動的にプロパティや変数の値の取得
□投稿者/ 魔界の仮面弁士 大御所(1234回)-(2019/07/28(Sun) 15:24:32)
  • アイコンNo34283に返信(ゆみとさんの記事)
    > 生成されたインスタンスに対して動的にプロパティや変数の値を取得を行いたいです。
    『何のために』そのようなことがしたいのでしょうか?

    理由如何によって、必要な対処方法も変わってくるかと
    思いますが、とりあえず幾つか例を挙げてみると…

    案1) 動的にアクセスできるよう、DynamicObject から継承するようにする
    案2) ExpandoObject クラスを使って dynamic でアクセスするようにする
    案3) Dictionary<string, Dictionary<string,dynamic>> を使う
    案4) XDocument で階層化データ構造を表すようにする
    案5) リレーション付き DataSet を使う(型付き DataSet でも可)
    案6) Microsoft.VisualBasic.Interaction.CallByName メソッドで呼び出す
    案7) リフレクションを通じて呼び出す
違反を報告
引用返信
■34285 / ResNo.2)  Re[2]: 動的にプロパティや変数の値の取得
□投稿者/ ゆみと 一般人(4回)-(2019/07/29(Mon) 11:30:25)
  • アイコン魔界の仮面弁士さん

    いつもありがとうございます。

    難しい事は考えず以下の方法で行います。

    /*syouAの場合*/
    FieldInfo field = t1.GetField("syou_A");

    var obj = field.GetValue(dai);

    Type t = obj.GetType();

    FieldInfo fieldy2 = t.GetProperty("nameA");

    string buff = fieldy2.GetValue(obj, null).ToString();

    /*syouBの場合*/
    PropertyInfo property = t1.GetProperty("syou_B");

    var obj = property.GetValue(dai, null);

    Type t = obj.GetType();

    PropertyInfo property2 = t.GetProperty("nameB");

    string buff = property2.GetValue(obj, null).ToString();

    以上

    No34284に返信(魔界の仮面弁士さんの記事)
    > ■No34283に返信(ゆみとさんの記事)
    >>生成されたインスタンスに対して動的にプロパティや変数の値を取得を行いたいです。
    > 『何のために』そのようなことがしたいのでしょうか?
    >
    > 理由如何によって、必要な対処方法も変わってくるかと
    > 思いますが、とりあえず幾つか例を挙げてみると…
    >
    > 案1) 動的にアクセスできるよう、DynamicObject から継承するようにする
    > 案2) ExpandoObject クラスを使って dynamic でアクセスするようにする
    > 案3) Dictionary<string, Dictionary<string,dynamic>> を使う
    > 案4) XDocument で階層化データ構造を表すようにする
    > 案5) リレーション付き DataSet を使う(型付き DataSet でも可)
    > 案6) Microsoft.VisualBasic.Interaction.CallByName メソッドで呼び出す
    > 案7) リフレクションを通じて呼び出す
違反を報告
引用返信
■34286 / ResNo.3)  Re[1]: 動的にプロパティや変数の値の取得
□投稿者/ 魔界の仮面弁士 大御所(1235回)-(2019/07/29(Mon) 11:57:24)
  • アイコン2019/07/29(Mon) 12:00:34 編集(投稿者)

    No34283に返信(ゆみとさんの記事)
    > 入れ子の入れ子?(言い方が正しいか分かりません)になった場合よく分からなくなってきました。

    質問文の C# 文法がおかしいので、何がやりたいのか曖昧で…。

    まずは【Dai クラス】の問題点から。

    > public class Dai
    > {
    >   public syou_A = new syouA();
    >   public syou_B {get; set;}
    >   public Dai()
    >   {
    >     this.syou_B = new syouB();
    >   }
    > }

    フィールド変数やプロパティの「型」を書き忘れているので、
    そもそも文法違反です。最低でもこうなるはずですよね。

    public class Dai {
      public syouA syou_A = new syouA();
      public syouB syou_B {get; set;}
      public Dai() { this.syou_B = new syouB(); }
    }



    さて次は【syouA クラス】の問題点。

    > public class syouA
    > {
    >  public string nameA = nameA;
    >  public object ageA = ageA;
    > }

    変数宣言と同時に、その変数を右辺に使うことは出来ません。
    未初期化変数へのアクセスということで、コンパイルエラーとなります。

    仮に同じ変数自身でなかったとしても、自身のインスタンスメンバーを
    フィールド初期化子に使うのは NG なので、たとえば
      public object ageA = "ageA";
      public string nameA = ageA;
    というのも NG ですね。


    最後は【Test クラス】の問題点については、
    Dai クラスのものと同じ理由なので割愛。

    > public class Test
    > {
    >   private dai = new Dai();


    質問の本題部となるのは、この部分ですね。

    > public void doutekiniSyutoku()
    > {
    >   string getname = "Dai"."syou_A"."nameA";
    > }



    No34284 に追記(魔界の仮面弁士)
    > 案1) 動的にアクセスできるよう、DynamicObject から継承するようにする
    > 案2) ExpandoObject クラスを使って dynamic でアクセスするようにする

    これらは「動的にメンバーを追加・取得することが目的」の場合に使うものです。

    案1 は継承が必要になりますが、動的なメンバー指定に応じて
    ファイルやデータベースに検索に行くような、MVC 的な利用が可能です。

    単純な読み書き向けだけなら、案2 でも十分です。以下サンプル。


    class Program
    {
      private static dynamic dai;
      static void Main()
      {
        // 動的なメンバー生成
        dai = new ExpandoObject();
        dai.syou_A = new ExpandoObject();
        dai.syou_B = new ExpandoObject();
        dai.syou_A.nameA = "なまえ";
        dai.syou_B.nameA = "ナマエ";
        dai.syou_A.ageA = "99";
        dai.syou_B.ageB = "0";

        // メンバー名出のアクセス
        Console.WriteLine(動的取得("syou_A", "nameA"));

        Console.ReadLine();
      }

      public static dynamic 動的取得(string member1, string member2)
      {
        dynamic syou = ((IDictionary<string, object>)dai)[member1];
        return ((IDictionary<string, object>)syou)[member2];
      }
    }


    > 案3) Dictionary<string, Dictionary<string,dynamic>> を使う
    > 案4) XDocument で階層化データ構造を表すようにする
    > 案5) リレーション付き DataSet を使う(型付き DataSet でも可)

    こっちは System.Dynamic に頼らない方法なので、C#2005 世代でも利用可能。



    > 案6) Microsoft.VisualBasic.Interaction.CallByName メソッドで呼び出す
    > 案7) リフレクションを通じて呼び出す

    元クラスの定義を変更したくないならこっち。
    No34285 は案7 に相当しますね。
違反を報告
引用返信
■34287 / ResNo.4)  Re[2]: 動的にプロパティや変数の値の取得
□投稿者/ ゆみと 一般人(5回)-(2019/07/30(Tue) 10:02:06)
  • アイコン2019/07/30(Tue) 20:45:44 編集(投稿者)
    2019/07/30(Tue) 20:45:22 編集(投稿者)

    魔界の仮面弁士さん

    いつもありがとうございます。

    ExpandoObjectを参考にさせて頂きます。
    ありがとうございます。

    質問時のサンプルプログラムは構文エラーが多く申し訳ありません。

    public class Dai
    {
    public syou_A = new syouA();

    public syou_B {get; set;}

    public Dai()
    {
    this.syou_B = new syouB();
    }
    }

    public class syouA
    {
    public string nameA = string.Empty;
    public object ageA = 0;
    }

    public class syouB
    {
    public string nameB { get; set;}
    public object ageB { get; set;}

    public syouB()
    {
    nameB = string.Empty;
    ageB = 0;
    }
    }

    public class Test
    {
    private dai = new Dai();

    public Test()
    {
    dai = new Dai();

    dai.syou_A.nameA = "なまえ";
    dai.syou_A.ageA = "99";

    dai.syou_B.nameB = "ナマエ";
    dai.syou_B.ageB = "0";
    }

    public void doutekiniSyutoku()
    {
    string getname = "Dai"."syou_A"."nameA";
    }
    }
解決み!
違反を報告
引用返信

■記事リスト / レス記事表示 → [親記事-4]



■記事リスト / ▼下のスレッド / ▲上のスレッド
■34268 / 親記事)  VB6 ほかのアプリケーションを起動し そのアプリケーションは終了させる方法
□投稿者/ あぽあぽ 一般人(1回)-(2019/06/26(Wed) 21:08:38)
  • アイコン環境/言語:[VB6] 
    分類:[VB6以前] 

    VB6 で 
    他EXE(アプリBとします)を起動したのち そのプログラムは終了させる方法はありますか?
    SHELL関数やobjWshShell.Runオブジェクトでは
    最初のアプリ(アプリAとします)を 終了させると 他EXE(アプリB)も 一緒に終了してしまいます。

    仕様としましては アプリAのバージョンアップを考えており
    アプリAで サーバよりダウンロードしたものを アプリBで 書き換えるといったものです。

    よろしく ご教授ください。
違反を報告
引用返信

▽[全レス4件(ResNo.1-4 表示)]
■34269 / ResNo.1)  Re[1]: VB6 ほかのアプリケーションを起動し そのアプリケーションは終了させる方法
□投稿者/ みい 一般人(6回)-(2019/06/27(Thu) 10:06:08)
  • アイコン2019/06/27(Thu) 10:15:40 編集(投稿者)

    No34268に返信(あぽあぽさんの記事)
    > VB6 で 
    > 他EXE(アプリBとします)を起動したのち そのプログラムは終了させる方法はありますか?
    Win32APIのShellExecuteではいかがでしょうか。

    第一引数の親ウインドウはNULL指定するとアプリAを終了してもアプリBは終了しません。
違反を報告
引用返信
■34270 / ResNo.2)  Re[1]: VB6 ほかのアプリケーションを起動し そのアプリケーションは終了させる方法
□投稿者/ 魔界の仮面弁士 大御所(1230回)-(2019/06/27(Thu) 15:20:25)
  • アイコンNo34268に返信(あぽあぽさんの記事)
    > SHELL関数やobjWshShell.Runオブジェクトでは
    > 最初のアプリ(アプリAとします)を 終了させると 他EXE(アプリB)も 一緒に終了してしまいます。

    下記のコードで試してみましたが、起動元のアプリケーションが終了しても、
    メモ帳や電卓が連動して終了することはありませんでした。

    Option Explicit
    Private Sub Main()
      Shell "notepad.exe"
      CreateObject("WScript.Shell").Run "calc.exe"
    End Sub
違反を報告
引用返信
■34271 / ResNo.3)  Re[2]: VB6 ほかのアプリケーションを起動し そのアプリケーションは終了させる方法
□投稿者/ あぽあぽ 一般人(2回)-(2019/06/27(Thu) 20:24:06)
http://VB6
  • アイコン
    > Win32APIのShellExecuteではいかがでしょうか。
    >
    > 第一引数の親ウインドウはNULL指定するとアプリAを終了してもアプリBは終了しません。
    どうもありがとうございました。

    教えていただいた通りで OKでした。
解決み!
違反を報告
引用返信
■34272 / ResNo.4)  Re[2]: VB6 ほかのアプリケーションを起動し そのアプリケーションは終了させる方法
□投稿者/ あぽあぽ 一般人(3回)-(2019/06/27(Thu) 20:29:41)
http://VB6
  • アイコン
    > 下記のコードで試してみましたが、起動元のアプリケーションが終了しても、
    > メモ帳や電卓が連動して終了することはありませんでした。
    >
    > Option Explicit
    > Private Sub Main()
    >   Shell "notepad.exe"
    >   CreateObject("WScript.Shell").Run "calc.exe"
    > End Sub

    どうもありがとうございます。

    結果として 上記のみい様の 方法でOKでしたのですが
    魔界の仮面弁士様 ご指摘の通りやってみて うまくいきました。

    たぶん アプリBは IDE実行では正常でしたが EXEで実行でエラーが出ていたのじゃないだろうかと 今、考えました。
    アプリAも アプリBも この質問以降に 多少の手直しをした結果 正常に動くようになってしまったのかと、もっとはやく気付かなかったことに 反省しております。

    どうもありがとうございました
解決み!
違反を報告
引用返信

■記事リスト / レス記事表示 → [親記事-4]



■記事リスト / ▲上のスレッド
■34265 / 親記事)  MouseEventArgsのカレント座標
□投稿者/ あばば無人君 一般人(4回)-(2019/05/27(Mon) 14:38:23)
  • アイコン環境/言語:[Win10Pro(Ver1809)、C#(.Net4.7.1)] 
    分類:[.NET] 

    現在、Win10Pro(Ver1809)+C#(.Net4.7.1)の環境でタイトルバーの無い
    フォームアプリケーション※を作成しております。
    ※FormのプロパティFormBorderStyle=None

    ただ、このアプリは移動はさせたいとの事なのでMouseDown/MouseMove/MouseUpの
    イベントを設定して以下の実装をしております。
    (マウスでフォームをドラッグして移動できる実装)

    private bool IsFormMoveStart = false;
    private Point MouseLocation;

    private void Form1_MouseDown(object sender, MouseEventArgs e)
    {
    Debug.WriteLine("マウスダウンイベント発生!:" + e.Button + e.Location);

    IsFormMoveStart = true;
    MouseLocation = e.Location;
    }

    private void Form1_MouseMove(object sender, MouseEventArgs e)
    {
    if (IsFormMoveStart)
    {
    Debug.WriteLine("マウスムーブイベント発生!:" + e.Button + e.Location);

    /// マウスの移動距離(ピクセル?)を求める
    int moveX = e.Location.X - MouseLocation.X;
    int moveY = e.Location.Y - MouseLocation.Y;

    /// マウスの移動距離分だけ当EXEフォームも移動させる
    this.Location = new Point(this.Location.X + moveX,
    this.Location.Y + moveY);

    // MouseLocation = e.Location; ★
    }
    }

    private void Form1_MouseUp(object sender, MouseEventArgs e)
    {
    Debug.WriteLine("マウスアップイベント発生!:" + e.Button + e.Location);

    IsFormMoveStart = false;
    }

    質問はこのフォームを実際にマウスで移動した時の以下ログのX座標の値です。

    マウスダウンイベント発生!:Left{X=200,Y=100} -@
    マウスムーブイベント発生!:Left{X=200,Y=100} -A
    マウスムーブイベント発生!:Left{X=201,Y=100} -B
    マウスムーブイベント発生!:Left{X=200,Y=100} -C
    マウスアップイベント発生!:Left{X=200,Y=100} -D

    @A行目はフォームをマウスで押下(指は解放していない)した時の物で、
    X座標はその時点の値が出力されていて問題は無い認識です。

    次に右へ1ピクセル動かしたログがBCなのですが、Bで200 → 201 となったのに
    Cで200に戻っています。
    また、指を開放した時のDも同様です。

    最初は私の操作がおかしいのかと思いましたが、何度やってもフォームは確実に
    1ピクセル動いていますし、また他の人間に操作させても同じ結果でした。

    CDで1ピクセル小さい値がイベントとして上がってくる原因が分かる方は
    いらっしゃいますでしょうか?

違反を報告
引用返信

▽[全レス2件(ResNo.1-2 表示)]
■34266 / ResNo.1)  Re[1]: MouseEventArgsのカレント座標
□投稿者/ Hongliang 大御所(561回)-(2019/05/27(Mon) 15:32:22)
  • アイコン2019/05/27(Mon) 15:45:02 編集(投稿者)

    e.Locationは、senderであるコントロールの左上を (0, 0) とするクライアント座標系で表されています。
    マウスを右に1ピクセル動かすと、フォームがそれに続いて右に1ピクセル移動されるため、結局クライアント座標系におけるマウスカーソル位置は元に戻ることになります。

    追記。
    マウスが動いていなくても、フォームの方が移動した時、MouseMoveイベントが発生します。
違反を報告
引用返信
■34267 / ResNo.2)  Re[2]: MouseEventArgsのカレント座標
□投稿者/ あばば無人君 一般人(6回)-(2019/05/27(Mon) 16:11:24)
  • アイコンNo34266に返信(Hongliangさんの記事)
    > 2019/05/27(Mon) 15:45:02 編集(投稿者)

    > e.Locationは、senderであるコントロールの左上を (0, 0) とするクライアント座標系で表されています。
    > マウスを右に1ピクセル動かすと、フォームがそれに続いて右に1ピクセル移動されるため、結局クライアント座標系におけるマウスカーソル位置は元に戻ることになります。

    Oh!その通りですね。
    しょぼいレベルの質問にお答えして頂き本当にありがとうございました。



    > 追記。
    > マウスが動いていなくても、フォームの方が移動した時、MouseMoveイベントが発生します。

    ご丁寧にありがとうございました。



    本件、解決済みとさせて頂きます。

解決み!
違反を報告
引用返信

■記事リスト / レス記事表示 → [親記事-2]






Mode/  Pass/


- Child Tree -

2019/08/18(Sun) 21:09:16 に作成されたキャッシュを表示しています。
生のデータを表示する | キャッシュを最新にする