redfox63 の回答履歴

全3318件中121~140件表示
  • C++ Thread::Sleep()について

    RunTimer = gcnew Timer(); RunTimer->Interval = 50; RunTimer->Tick += gcnew EventHandler(this, &RunTick); RunTimer->Enabled = true; ・・・処理・・・ RunTimer->Enabled = false; System::Threading::Thread::Sleep(1000); としているのですが、数コマ動いてしまいます。 処理は3枚の画像を差し替えて動かしているのですが、即座にスリープがかからず、 画像が少し歪んでしまいます。 ソースが長く、どこを記載すれば良いのか解らず、かなり抜粋しましたが、 TimerのTickで画像を入れ替えて、歩いている様にみせかけています。 一時停止後、改めて処理を始めようと思っているのですが、 なぜだか、少し動いてしまします。 Sleepを削除すると、うまく止まるのですが、即座に次の処理に移行してしまう為、数秒停止させたいと考えています。 System::Threading::Thread::Sleep(1000); だけでは、即座に止める事はできないものでしょうか? また、TimerのTickを数秒止める事はできるものでしょうか? ご存じの方、アドバイスよろしくお願いいたします。

  • excel vbaのエラー原因について

    よろしくお願いします。初心者で勉強中です。以下のコードを作成してみましたがエラーが出ます。いろいろ調べてみましたが解決策がわからないので、教えて頂ければと思います。 ・シートは31シートあります(1番左のシート名は"初期設定"、2番目は 1日、3番目は2日と・・・、順に30日まであります。) 。 ・やりたい事。 ・2番目シートの(A1からA10)までをコピーし、1番目シートのA2にはりつける。3番目シートの(A1からA10)までをコピーし、1番目シートの先ほど貼り付けたデータの1つ下の行にはりつける・・・順に30日までのデータをすべて1番目シートに貼り付けたいと思っています。 ・"初期設定シート"の1行目には文字が入っているので、データの貼り付けは2行目からにする予定です ・作ったコード Sub 練習() Dim maxrow As Long Dim i As Long maxrow = Sheets(1).Range("a1").End(xlDown).Row For i = 2 To 31 Sheets(i).Select Sheets(i).Range("A1", "A10").Select Selection.Copy Worksheets(1).cells(maxrow+1,1) Next i End Sub ・F8で1文ずつ確認すると、Selection.Copy Worksheets(1).cells(maxrow+1,1) を実行したときに、「実行時エラーがでます」。 EXCEL2000を使用しています。 よろしくお願いします。

  • VBL ListBoxをテーブルに

    VBでListBoxを使ってテーブルのようにして以下のことをしたいのですがうまくいきません 1:列1の幅と列2の幅を個々で固定させ、文字数が列幅を超える場合、文字を折り返して表示 2:を追加していった時ListBoxの表示領域数を超えたら垂直スクロールバーを上下させ全表示  列1           列2 ------------------------ aaaaaa          123 ------------------------ bbbbbbbbbbbbbb bbbbbb          222 bbbbb ------------------------ cccccc          454 ------------------------ 1はイメージ的にはこんな感じです ListBoxをテーブルのようにするにはURLを参考にしました。 http://msdn.microsoft.com/query/dev10.query?appId=Dev10IDEF1&l=JA-JP&k=k%28SYSTEM.WINDOWS.FORMS.LISTBOX.MULTICOLUMN%29&rd=true 説明が分かりにくくてすいません

  • [Visual C#] 優先される処理について

    お世話になります。 初歩的な質問で大変恐縮です。 Visual C# 2010 で開発しているのですが、 DataGridViewクラスを継承した独自クラスを定義し、 セルの編集状態でEnterキーを押下した場合、 次の行のセルにフォーカスを移動する処理を記述しています。 ・・・・ (1) 例: this.CurrentCell = this[col, row]; 上記(1)とは別のcsファイルに、 上記(1)を親クラスとしてDataGridViewのインスタンスを生成しています。 また、このGridViewのCellValidatingイベント内では、セルに入力された値の エラーチェック処理を行い、エラーの場合は e.Cancel = true; を設定しています。 ・・・・ (2) 実際にDataGridViewのセルに値を入力し、編集状態でEnterキーを押下すると、 (1) → (2) → (1) の順序で処理が実行され、最後の(1)の処理中に下記エラーが出力されます。 「セル値の変更をコミットまたは中止できないため、操作は成功しませんでした。」 上記(2)の処理後に何かしらフラグをたてて、 エラー発生直前にフラグ内容を判断してエラーを回避しようと試みましたが、 条件文を無視して(1)のフォーカス移動処理が強制実行され、同一エラーが出力されます。 なぜ、他の処理を無視して(1)が強制実行されるのかが理解できずに困っています。 どなたかご存じの方がいらっしゃいましたら、ご教授願えますでしょうか? よろしくお願いいたします。

  • [Visual C#] 優先される処理について

    お世話になります。 初歩的な質問で大変恐縮です。 Visual C# 2010 で開発しているのですが、 DataGridViewクラスを継承した独自クラスを定義し、 セルの編集状態でEnterキーを押下した場合、 次の行のセルにフォーカスを移動する処理を記述しています。 ・・・・ (1) 例: this.CurrentCell = this[col, row]; 上記(1)とは別のcsファイルに、 上記(1)を親クラスとしてDataGridViewのインスタンスを生成しています。 また、このGridViewのCellValidatingイベント内では、セルに入力された値の エラーチェック処理を行い、エラーの場合は e.Cancel = true; を設定しています。 ・・・・ (2) 実際にDataGridViewのセルに値を入力し、編集状態でEnterキーを押下すると、 (1) → (2) → (1) の順序で処理が実行され、最後の(1)の処理中に下記エラーが出力されます。 「セル値の変更をコミットまたは中止できないため、操作は成功しませんでした。」 上記(2)の処理後に何かしらフラグをたてて、 エラー発生直前にフラグ内容を判断してエラーを回避しようと試みましたが、 条件文を無視して(1)のフォーカス移動処理が強制実行され、同一エラーが出力されます。 なぜ、他の処理を無視して(1)が強制実行されるのかが理解できずに困っています。 どなたかご存じの方がいらっしゃいましたら、ご教授願えますでしょうか? よろしくお願いいたします。

  • 条件付マクロの質問です

    エクセルのマクロでご質問です。 C:\Users等の場所のとあるフォルダに、7777.jpgなどの4桁の名前の写真データが多く格納されており、そのフォルダから特定セルに写真データの番号を入力してシートに挿入表示させるマクロを作ったのですが、 フォルダ内に該当番号ファイルがある場合は問題無いのですが、フォルダに該当する番号の写真データ(番号)が無い場合にマクロを終了させたいプログラムが分かりません。条件でif~thenなどあるようなのですが上手く行きませんでした。とくにメッセージなど高度なことは無くても構いませんので、単に該当番号がフォルダに無い場合マクロを強制終了させる構文などお分かりでしたらぜひ教えていただきたく存じます。大変お手数ですが何卒よろしくお願いいたします。

    • ベストアンサー
    • noname#256688
    • Visual Basic
    • 回答数3
  • ACCESS VBA からエクセルを最小化

    ACCESS側からエクセルを開き、エクセルの内容をテーブルへ取り込む作業をしています。 一度、エクセルをxlapp(エクセルアプリケーションオブジェクト).Visible=Ture で、 エクセルファイルを表示したあと、エクセルの作業ターゲットとなるセルを指定させるために、 アクセスで 変数=Inputbox("","",,,,,,,8)を使っています。 そうすると、操作上、エクセル画面が表示されたまま、Inputbox(アクセス側)が 見えなくなり、プログラムがそこで、とまってしまったような感じになります。 アクセスからエクセルを開きVisibleにしたあとで、きれいにアクセス側へ戻ってくれるように するためには、どんなコードになるのでしょうか? 宜しくお願いいたします。

  • VBA 追加したMultiPageでのイベント

    ExcelVBAでどうしても分からないところがあったため、質問させていただきました。 <Usrform上Control> ・UserForm1 ・MultiPage-Page1 ・CommandButton1(押すとPageが追加されます。Page1,Page2,Page3...) ・Combobox1 ・TextBox1 <現在可能な動作> UserForm1上にMultiPageのPage1を設定しています。 CommandButton1を押すとPage2が追加され、Page1上に設定されてあるCombobox1とTextBox1をPage2上に追加します。 <行ないたい動作> 現在は、Page1上でCombobox1の値が変更された時に、Page1上のTextBox1の値が変更されるように設定していますが、 Page2上のCombobox1の値が変更された時に、Page2上のTextBox1の値を変更することは出来ますでしょうか? 使用Versionは、Excel 2003です。 何卒、よろしくお願いします。 <Code> Private Sub CommandButton3_Click() Dim myCmbbx As MSForms.ComboBox Dim myTxtbx As MSForms.TextBox With MultiPage1 .Pages.Add , , .Value + 1 .Value = .Value + 1 End With With MultiPage1.SelectedItem Set myCmbbx = .Controls.Add("Forms.Combobox.1", "ComboBox1", True) With myCmbbx .AddItem "AAA" .AddItem "BBB" .AddItem "CCC" End With Set myTxtbx = .Controls.Add("Forms.TextBox.1", "TextBox1", True) With myTxtbx .MultiLine = True End With End With End Sub Private Sub ComboBox1_change() If ComboBox1.Text = "BBB" Then TextBox1.Value=1234567 End If End Sub

  • VB.NET DLL 参照型String読込み

    VCで作成されたDLLの参照型Stringの読込みに困っております。 ご存じの方、お教え下さい。 VB6では次のような定義で、問題なく実行できます。 Private Declare Function VcToVb _ Lib "xxxxxxx.dll" Alias "VcToVb" _ (ByVal Input_DATA As String, ByVal Input_DATA_Cnt As Long, _ ByRef strData As String, ByRef Err_Cnt As Long, ByRef Err_DATA As String) As Long ------------------------------------ Out_Str , Err_Str の領域を確保 iRent = Check_VcToVb1(Input_STR, Input_Cnt, Out_STR, Err_Cnt, Err_STR) これを VB.NETで実施 Private Declare Ansi Function VcToVb _  Lib "xxxxxxx.dll" Alias "VcToVb" _ (ByVal Input_DATA As String, ByVal Input_DATA_Cnt As Int32, _ <MarshalAs(UnmanagedType.LPStr)> ByRef strData As StringBuilder, _ ByRef err_cnt As Int32, ByRef Err_DATA As StringBuilder) As Int32 (テストのため、strDataのみ) -------------------------------------- Out_Str , Err_Str の領域を確保 iRent = Check_VcToVb1(Input_STR, Input_Cnt, Out_STR, Err_Cnt, Err_STR) ******************************************* 調べた結果、VB.NETでは参照型は簡単にはいかないみたいで、StringBuilderを使用するとか、色々な方法を試しました。 結果は戻ってくるのですが、問題は DLLが文字列を返すときに、文字列内の項目区切文字として chr(0)を設定します。 このため、結果は Chr(0)の前までしか設定されません。 (VB.NETが Chr(0)を文字列の最後と判断する?) これを解決する方法はありますでしょうか。 現在は VB6で呼出す DLLを作成し、VB.NETはこれを使用していますが、 C#.Netならできるのでしょうか。 よろしくお願い申し上げます。

  • VB.NET DLL 参照型String読込み

    VCで作成されたDLLの参照型Stringの読込みに困っております。 ご存じの方、お教え下さい。 VB6では次のような定義で、問題なく実行できます。 Private Declare Function VcToVb _ Lib "xxxxxxx.dll" Alias "VcToVb" _ (ByVal Input_DATA As String, ByVal Input_DATA_Cnt As Long, _ ByRef strData As String, ByRef Err_Cnt As Long, ByRef Err_DATA As String) As Long ------------------------------------ Out_Str , Err_Str の領域を確保 iRent = Check_VcToVb1(Input_STR, Input_Cnt, Out_STR, Err_Cnt, Err_STR) これを VB.NETで実施 Private Declare Ansi Function VcToVb _  Lib "xxxxxxx.dll" Alias "VcToVb" _ (ByVal Input_DATA As String, ByVal Input_DATA_Cnt As Int32, _ <MarshalAs(UnmanagedType.LPStr)> ByRef strData As StringBuilder, _ ByRef err_cnt As Int32, ByRef Err_DATA As StringBuilder) As Int32 (テストのため、strDataのみ) -------------------------------------- Out_Str , Err_Str の領域を確保 iRent = Check_VcToVb1(Input_STR, Input_Cnt, Out_STR, Err_Cnt, Err_STR) ******************************************* 調べた結果、VB.NETでは参照型は簡単にはいかないみたいで、StringBuilderを使用するとか、色々な方法を試しました。 結果は戻ってくるのですが、問題は DLLが文字列を返すときに、文字列内の項目区切文字として chr(0)を設定します。 このため、結果は Chr(0)の前までしか設定されません。 (VB.NETが Chr(0)を文字列の最後と判断する?) これを解決する方法はありますでしょうか。 現在は VB6で呼出す DLLを作成し、VB.NETはこれを使用していますが、 C#.Netならできるのでしょうか。 よろしくお願い申し上げます。

  • C++CLI GetCurrentDirector

    画像ファイルをPictureBoxに読み込みたいのですが、うまくいきません。 String^ CurrentDirectory = System::IO::Directory::GetCurrentDirectory() + "/picture1.png"; pictureBox1->Image = Image::FromFile(CurrentDirectory); としているのですが、うまく画像ファイルを読み込めません。 MessagaBoxでSystem::IO::Directory::GetCurrentDirectory()の部分を表示してみると、 区切り記号が¥マークが一つでした。 System::IO::Directory::GetCurrentDirectory()の部分を文字列で直接入力すると、うまく動作します。 ¥マークが影響している様に思うのですが、対処の仕方がわかりません。 アドバイスよろしくお願いいたします。

  • C#で自作ライブラリの使用方法について

    仮に、Nameと言う名前空間のClsと言うクラス内にMtdと言うメソッドが存在するライブラリを作成したとします。(Cls.dll) このライブラリをMainProgと言う別プログラムから使用したいのですが、ソリューションエクスプローラの参照設定でCls.dllを設定しても、MainProgのメソッド内の「Name.Cls.Mtd();」記述部分について 「名前'Name'は現在のコンテキスト内に存在しません」のエラーが出て、ライブラリが認識されません。 尚、その他の標準ライブラリは問題なく使えます。 何が間違っているのか教えて頂けないでしょうか。 宜しくお願いします。

  • VB.NET DLL 参照型String読込み

    VCで作成されたDLLの参照型Stringの読込みに困っております。 ご存じの方、お教え下さい。 VB6では次のような定義で、問題なく実行できます。 Private Declare Function VcToVb _ Lib "xxxxxxx.dll" Alias "VcToVb" _ (ByVal Input_DATA As String, ByVal Input_DATA_Cnt As Long, _ ByRef strData As String, ByRef Err_Cnt As Long, ByRef Err_DATA As String) As Long ------------------------------------ Out_Str , Err_Str の領域を確保 iRent = Check_VcToVb1(Input_STR, Input_Cnt, Out_STR, Err_Cnt, Err_STR) これを VB.NETで実施 Private Declare Ansi Function VcToVb _  Lib "xxxxxxx.dll" Alias "VcToVb" _ (ByVal Input_DATA As String, ByVal Input_DATA_Cnt As Int32, _ <MarshalAs(UnmanagedType.LPStr)> ByRef strData As StringBuilder, _ ByRef err_cnt As Int32, ByRef Err_DATA As StringBuilder) As Int32 (テストのため、strDataのみ) -------------------------------------- Out_Str , Err_Str の領域を確保 iRent = Check_VcToVb1(Input_STR, Input_Cnt, Out_STR, Err_Cnt, Err_STR) ******************************************* 調べた結果、VB.NETでは参照型は簡単にはいかないみたいで、StringBuilderを使用するとか、色々な方法を試しました。 結果は戻ってくるのですが、問題は DLLが文字列を返すときに、文字列内の項目区切文字として chr(0)を設定します。 このため、結果は Chr(0)の前までしか設定されません。 (VB.NETが Chr(0)を文字列の最後と判断する?) これを解決する方法はありますでしょうか。 現在は VB6で呼出す DLLを作成し、VB.NETはこれを使用していますが、 C#.Netならできるのでしょうか。 よろしくお願い申し上げます。

  • VB.NET DLL 参照型String読込み

    VCで作成されたDLLの参照型Stringの読込みに困っております。 ご存じの方、お教え下さい。 VB6では次のような定義で、問題なく実行できます。 Private Declare Function VcToVb _ Lib "xxxxxxx.dll" Alias "VcToVb" _ (ByVal Input_DATA As String, ByVal Input_DATA_Cnt As Long, _ ByRef strData As String, ByRef Err_Cnt As Long, ByRef Err_DATA As String) As Long ------------------------------------ Out_Str , Err_Str の領域を確保 iRent = Check_VcToVb1(Input_STR, Input_Cnt, Out_STR, Err_Cnt, Err_STR) これを VB.NETで実施 Private Declare Ansi Function VcToVb _  Lib "xxxxxxx.dll" Alias "VcToVb" _ (ByVal Input_DATA As String, ByVal Input_DATA_Cnt As Int32, _ <MarshalAs(UnmanagedType.LPStr)> ByRef strData As StringBuilder, _ ByRef err_cnt As Int32, ByRef Err_DATA As StringBuilder) As Int32 (テストのため、strDataのみ) -------------------------------------- Out_Str , Err_Str の領域を確保 iRent = Check_VcToVb1(Input_STR, Input_Cnt, Out_STR, Err_Cnt, Err_STR) ******************************************* 調べた結果、VB.NETでは参照型は簡単にはいかないみたいで、StringBuilderを使用するとか、色々な方法を試しました。 結果は戻ってくるのですが、問題は DLLが文字列を返すときに、文字列内の項目区切文字として chr(0)を設定します。 このため、結果は Chr(0)の前までしか設定されません。 (VB.NETが Chr(0)を文字列の最後と判断する?) これを解決する方法はありますでしょうか。 現在は VB6で呼出す DLLを作成し、VB.NETはこれを使用していますが、 C#.Netならできるのでしょうか。 よろしくお願い申し上げます。

  • VB.NET DLL 参照型String読込み

    VCで作成されたDLLの参照型Stringの読込みに困っております。 ご存じの方、お教え下さい。 VB6では次のような定義で、問題なく実行できます。 Private Declare Function VcToVb _ Lib "xxxxxxx.dll" Alias "VcToVb" _ (ByVal Input_DATA As String, ByVal Input_DATA_Cnt As Long, _ ByRef strData As String, ByRef Err_Cnt As Long, ByRef Err_DATA As String) As Long ------------------------------------ Out_Str , Err_Str の領域を確保 iRent = Check_VcToVb1(Input_STR, Input_Cnt, Out_STR, Err_Cnt, Err_STR) これを VB.NETで実施 Private Declare Ansi Function VcToVb _  Lib "xxxxxxx.dll" Alias "VcToVb" _ (ByVal Input_DATA As String, ByVal Input_DATA_Cnt As Int32, _ <MarshalAs(UnmanagedType.LPStr)> ByRef strData As StringBuilder, _ ByRef err_cnt As Int32, ByRef Err_DATA As StringBuilder) As Int32 (テストのため、strDataのみ) -------------------------------------- Out_Str , Err_Str の領域を確保 iRent = Check_VcToVb1(Input_STR, Input_Cnt, Out_STR, Err_Cnt, Err_STR) ******************************************* 調べた結果、VB.NETでは参照型は簡単にはいかないみたいで、StringBuilderを使用するとか、色々な方法を試しました。 結果は戻ってくるのですが、問題は DLLが文字列を返すときに、文字列内の項目区切文字として chr(0)を設定します。 このため、結果は Chr(0)の前までしか設定されません。 (VB.NETが Chr(0)を文字列の最後と判断する?) これを解決する方法はありますでしょうか。 現在は VB6で呼出す DLLを作成し、VB.NETはこれを使用していますが、 C#.Netならできるのでしょうか。 よろしくお願い申し上げます。

  • C#で自作ライブラリの使用方法について

    仮に、Nameと言う名前空間のClsと言うクラス内にMtdと言うメソッドが存在するライブラリを作成したとします。(Cls.dll) このライブラリをMainProgと言う別プログラムから使用したいのですが、ソリューションエクスプローラの参照設定でCls.dllを設定しても、MainProgのメソッド内の「Name.Cls.Mtd();」記述部分について 「名前'Name'は現在のコンテキスト内に存在しません」のエラーが出て、ライブラリが認識されません。 尚、その他の標準ライブラリは問題なく使えます。 何が間違っているのか教えて頂けないでしょうか。 宜しくお願いします。

  • 続・タイマーとShowdialog(VB2010)

    タイマーコントロールについて の続きになります。 一つ方法を考えました。いくつか問題ありですが・・。 ApplicationEvent.vbの部分を Namespace My Partial Friend Class MyApplication Protected Overrides Function OnInitialize( _ ByVal commandLineArgs As _ System.Collections.ObjectModel.ReadOnlyCollection(Of String) _ ) As Boolean 'スプラッシュウィンドウを表示する最短時間を0.5秒にする Me.MinimumSplashScreenDisplayTime = 500 Return MyBase.OnInitialize(commandLineArgs) End Function      'スプラッシュスクリーンのタイマーコントロール設定 Friend Sub Splash() With SplashScreen1.Timer1 .Enabled = True .Interval = 500 End With SplashScreen1.Timer1.Start() End Sub ' この書き方あってますか?とりあえずは反映されてるようですけれど・・・ End Class End Namespace SplashScreen1の部分を Public Class SplashScreen1 Friend Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click     ' クリックで閉じる DialogResult = DialogResult.OK Me.Close() End Sub Friend Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick ' タイマーコントロール発動時、瞬時に停止させる。スクリーンは消えないように。 Me.Timer1.Enabled = False Me.ShowDialog() End Sub End Class と、してみましたが・・・問題が発生するのです。 この時、スクリーンフォームがMe.ShowDialog()と書いてあるにもかかわらず、 メインフォームとともに操作可能・・つまりモードレスであるShowで表示されるのです。上記のコードを実行してもらえれば分かると思いますが・・。 また、メインフォームが前方に、スクリーンフォームが後方に行ってしまいます。これはどのようにすれば良いでしょうか? Me.TopMost = True としても駄目でした。 BringToFrontを使っても同じでした。

  • 続・タイマーとShowdialog(VB2010)

    タイマーコントロールについて の続きになります。 一つ方法を考えました。いくつか問題ありですが・・。 ApplicationEvent.vbの部分を Namespace My Partial Friend Class MyApplication Protected Overrides Function OnInitialize( _ ByVal commandLineArgs As _ System.Collections.ObjectModel.ReadOnlyCollection(Of String) _ ) As Boolean 'スプラッシュウィンドウを表示する最短時間を0.5秒にする Me.MinimumSplashScreenDisplayTime = 500 Return MyBase.OnInitialize(commandLineArgs) End Function      'スプラッシュスクリーンのタイマーコントロール設定 Friend Sub Splash() With SplashScreen1.Timer1 .Enabled = True .Interval = 500 End With SplashScreen1.Timer1.Start() End Sub ' この書き方あってますか?とりあえずは反映されてるようですけれど・・・ End Class End Namespace SplashScreen1の部分を Public Class SplashScreen1 Friend Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click     ' クリックで閉じる DialogResult = DialogResult.OK Me.Close() End Sub Friend Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick ' タイマーコントロール発動時、瞬時に停止させる。スクリーンは消えないように。 Me.Timer1.Enabled = False Me.ShowDialog() End Sub End Class と、してみましたが・・・問題が発生するのです。 この時、スクリーンフォームがMe.ShowDialog()と書いてあるにもかかわらず、 メインフォームとともに操作可能・・つまりモードレスであるShowで表示されるのです。上記のコードを実行してもらえれば分かると思いますが・・。 また、メインフォームが前方に、スクリーンフォームが後方に行ってしまいます。これはどのようにすれば良いでしょうか? Me.TopMost = True としても駄目でした。 BringToFrontを使っても同じでした。

  • C# datagridview 列幅の調整

    以前列数を増やそうとすると「FillWeight値が65535を超えています」というエラーが出て困っていると ご質問させて頂いて,列幅を調整すればいいとの御回答を頂きました. そこで,列幅を調整(100→5)して行ってみたのですが,654列作成したところで同じエラーが出ました. どなたか,このエラーが出る原因をご教授願えないでしょうか? 因みに作成しようとしている列数は8760列です. よろしくお願いいたします.

  • 続・タイマーとShowdialog(VB2010)

    タイマーコントロールについて の続きになります。 一つ方法を考えました。いくつか問題ありですが・・。 ApplicationEvent.vbの部分を Namespace My Partial Friend Class MyApplication Protected Overrides Function OnInitialize( _ ByVal commandLineArgs As _ System.Collections.ObjectModel.ReadOnlyCollection(Of String) _ ) As Boolean 'スプラッシュウィンドウを表示する最短時間を0.5秒にする Me.MinimumSplashScreenDisplayTime = 500 Return MyBase.OnInitialize(commandLineArgs) End Function      'スプラッシュスクリーンのタイマーコントロール設定 Friend Sub Splash() With SplashScreen1.Timer1 .Enabled = True .Interval = 500 End With SplashScreen1.Timer1.Start() End Sub ' この書き方あってますか?とりあえずは反映されてるようですけれど・・・ End Class End Namespace SplashScreen1の部分を Public Class SplashScreen1 Friend Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click     ' クリックで閉じる DialogResult = DialogResult.OK Me.Close() End Sub Friend Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick ' タイマーコントロール発動時、瞬時に停止させる。スクリーンは消えないように。 Me.Timer1.Enabled = False Me.ShowDialog() End Sub End Class と、してみましたが・・・問題が発生するのです。 この時、スクリーンフォームがMe.ShowDialog()と書いてあるにもかかわらず、 メインフォームとともに操作可能・・つまりモードレスであるShowで表示されるのです。上記のコードを実行してもらえれば分かると思いますが・・。 また、メインフォームが前方に、スクリーンフォームが後方に行ってしまいます。これはどのようにすれば良いでしょうか? Me.TopMost = True としても駄目でした。 BringToFrontを使っても同じでした。