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

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

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

全過去ログを検索

<< 0 >>
■12043  Re[1]: 変数名等に日本語を使う
□投稿者/ 倉田 有大 -(2007/12/28(Fri) 02:18:21)
    No12041 (毛玉 さん) に返信
    > お世話になります。

    英語でなれちゃったから、逆に日本語が混じるとよみにくいなあ
    コメントにはつかいますが

    プログラムに特化した言語なんてできるとおもしろいかもしれませんね
記事No.12041 のレス /過去ログ26より / 関連記事表示
削除チェック/

■17299  Re[7]: Webサービスのコンパイルタイミング
□投稿者/ 渋木宏明(ひどり) -(2008/04/21(Mon) 20:06:15)
>
    > もし、メソッドごとにコンパイルが発生する場合、
    > Set()で設定した情報はリセットされるものと
    > 考えてましたが、、、いかがでしょう。

    「コンパイル」つーのがどういう動作を指しているかによって異なります。

    「.aspx や .asmx から .dll を生成する」のと「実行対象となったメソッドが JIT される」のはまったく別の動作です。
記事No.17274 のレス /過去ログ34より / 関連記事表示
削除チェック/

■35305  Re[3]: 統合開発環境外でのアセンブリ参照について
□投稿者/ らじうむ -(2009/04/23(Thu) 20:55:59)
    > 参照しているライブラリはDirectXの関係です。
    > DirectXのエンドユーザーランタイムライブラリをインストール
    > することで配置された場所を参照すれば良いのかと思いますが、
    > アプリケーションの実行時にこの場所を参照する方法はあるでしょうか。
    ???動的リンクのことでしょうか?
    それであれば、Win32APIのLoadLibrary()でできますよ
記事No.35287 のレス /過去ログ61より / 関連記事表示
削除チェック/

■52573  Re[2]: CPUの温度を測定するプログラム
□投稿者/ オショウ -(2010/08/15(Sun) 22:06:38)
    > このあたりを参考にされてみては?
    > http://kariunten.homeip.net/programming/winring0.html#cputemp

      WinRing0は、公開を終了してしまったので・・・

      カーネルモードドライバーをご自身で作成しない限り
      マザーボードメーカーやどこかで提供されているハー
      ドウェアモニターAPIを使わない限り、無理かと。

      まぁ〜一般的にはVBやC#では無理ですネ!

    以上。
記事No.52568 のレス /過去ログ88より / 関連記事表示
削除チェック/

■69400  VB。NETでURLを開くには
□投稿者/ あんちゃん -(2013/12/23(Mon) 09:50:21)

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

    VB.NETでURLを開くには。。次のようにしてもだめでした。
    Public Class Form1
    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    Dim url As String = "http:www.yahoo.co.jp/"
    System.Diagnostics.Process.Start(url)
    End Sub

    これもだめでした。

    Public Class Form1
    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    System.Diagnostics.Process.Start("http//www.yahoo.co.jp/")
    End Sub
親記事 /過去ログ118より / 関連記事表示
削除チェック/

■69399  Re[2]: Oracleでのバッチ処理
□投稿者/ a -(2013/12/23(Mon) 09:42:41)
    No69390 (甕星 さん) に返信
    > ■No69384 (休日出勤 さん) に返信
    >>そこで、データ数が多いと以下のORACLEのエラーが出ます。
    >>
    >>ORA-00604: 再帰SQLレベル1でエラーが発生しました。
    >>ORA-01000: 最大オープン・カーソル数を超えました。
    >
    > 素直に解釈するなら、カーソル開きっぱなしにするバグがあるんじゃね?
    >
    俺もそうじゃないかと思う。
    時間があれば↓を一読してみてください。例はJavaになっていますが。
    http://ameblo.jp/archive-redo-blog/entry-10034748388.html
記事No.69384 のレス /過去ログ118より / 関連記事表示
削除チェック/

■87759  Re[2]: 別フォームにデータを渡したい
□投稿者/ 魔界の仮面弁士 -(2018/06/28(Thu) 12:54:11)
    No87758 (WebSurfer さん) に返信
    > Form2 のコンストラクタにデータを渡すための引数を持つものを追加し、frm = New Form2 のところで
    > そのコンストラクタを使って frm = New Form2(データ) というようにしてはいかがですか?

    この方法に一票。

    ただし注意点として、
     (1) 引数付きコンストラクタだけでなく、引数なしコンストラクタもオーバーロードで残すこと。
     (2) コンストラクタ内では、最初に InitializeCompoent() を呼び出すこと。
    を忘れずに。
記事No.87756 のレス /過去ログ151より / 関連記事表示
削除チェック/

■87765  Re[3]: 別フォームにデータを渡したい
□投稿者/ いまそかり -(2018/06/28(Thu) 18:05:42)
    ■No87759 (魔界の仮面弁士 さん) に返信
    ■No87758 (WebSurfer さん) に返信
    
    魔界の仮面弁士さん、WebSurferさん、回答ありがとうございます。
    
    
    >>Form2 のコンストラクタにデータを渡すための引数を持つものを追加し、frm = New Form2 のところで
    >>そのコンストラクタを使って frm = New Form2(データ) というようにしてはいかがですか?
    
    > ただし注意点として、
    >  (1) 引数付きコンストラクタだけでなく、引数なしコンストラクタもオーバーロードで残すこと。
    >  (2) コンストラクタ内では、最初に InitializeCompoent() を呼び出すこと。
    > を忘れずに。
    
    
    
    基からデータを渡すための引数を設定…思いつきませんでした。
    書きやすそうだったので、上記のご意見を踏まえて書き直してみました。
    ※追加したコードは***で囲ってあります。
    
    
    
    <修正後ソースコード>
    
    【Form1】
    Public class Form1 
    
    ***********************
    *	
    *	'Form2のコンストラクタにデータを渡すための引数を入れる変数
    *	Dim df As DataSet
    *
    ***********************
    
    
    
    	'xmlからデータを取得
    	Function xmlGet(Byval a As String,Byval b As String)
    
    		'xmlへのパスやLoadなど(省略)
    
    		 	  ・
    			  ・
    			  ・
    			  ・
    
    	End Function
    
    
    	'フォーム内での動き
    	Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    
    		'DBに接続するための情報をxmlから取得
    		Dim id As String = xmlGet("a","b_id") 
    		Dim pass As String = xmlGet("a","b_pass")
    
     
    		'接続文字列の指定やSQL文の設定、接続、DBからレコード取得(省略)
    			
    					 ・
    					 ・
    					 ・
    					 ・
    
    	End Sub
    
    
    ***********************
    *
    *	'ボタンクリックイベント(Form2が開く)
    *	Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    *       
    *		Dim frm As Form2
    *        	frm = New Form2(df) 
    *        	frm.Show()  '(※1)
    *
    *	End Sub
    *
    ***********************
    
    
    End class	
    
    
    
    【Form2】
    
    Public Class Form2
    
    
    ***********************
    *
    *	Private df As DataSet
    *
    *
    *	'Form2のオーバーロード(引数あり)
    *	Public Sub New()
    *
    *        	InitializeComponent()
    *
    *	End Sub
    *
    *
    *	'Form2のオーバーロード(引数あり)
    *	Public Sub New(df As DataSet)
    *              IntializeComponent()
    *        	Me.df = df
    *	End Sub
    *
    ***********************
    
    
    	'ここでDBから取得した値をコンボボックスに入れる
    	Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    		
    
    ***********************
    *
    *	'Form1_Loadの呼び出し
    *	Dim fType As Type = Form.GetType()
    *
    *      Dim f2 As New Form()
    *
    *      fType.InvokeMember("Form1_Load",
    *                         BindingFlags.NonPublic Or
    *                         BindingFlags.Instance Or
    *                         BindingFlags.InvokeMethod,
    *                         Nothing,
    *                         Form1,
    *                         New Object() {Form1, f2}
    *                         )
    *
    *
    *		'コンボボックスにDB内のテーブルを連結
    *		'ここでdf使ってます
    *
    ***********************
    
                	'コンボボックスに表示したいデータ
       	        '実際に扱うデータをSelectValueで取得する
          	    	
    	End Sub
    
    End class
    
    
    
    
    
    
    上手く書くことが出来ました!
    しかし、エラーもなかったので実行してみると、ソースコードの(※1)のところで
    「保護されているメモリに読み取りまたは書き込み操作を行おうとしました。他のメモリが壊れていることが考えられます。」
    という例外が発生してしまいます。
    
    これも色々と調べてはみたのですが、よく分からず…。
    すみませんが、引き続きご教授頂けますとありがたいです。
    (タイトル違いでしたら新しいスレッド立てます)
    
記事No.87756 のレス /過去ログ151より / 関連記事表示
削除チェック/

■87776  Re[4]: 別フォームにデータを渡したい
□投稿者/ 魔界の仮面弁士 -(2018/06/29(Fri) 14:47:52)
    a■No87765 (いまそかり さん) に返信
    > <修正後ソースコード>
    > 'xmlからデータを取得
    > Function xmlGet(Byval a As String,Byval b As String)

    Function の戻り値のデータ型が示されていません。
    戻り値が無いのなら Sub にするべきですし、
    戻り値があるのなら、末尾に「As String」などの記述が必要です。


    > * 'ボタンクリックイベント(Form2が開く)
    > * Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    > *  Dim frm As Form2
    > *  frm = New Form2(df)
    > *  frm.Show() '(※1)

    この段階で、df の中身が Nothing になっていたりはしませんか?


    > * 'Form2のオーバーロード(引数あり)
    > * Public Sub New()
    > *  InitializeComponent()
    > * End Sub
    > * 'Form2のオーバーロード(引数あり)
    > * Public Sub New(df As DataSet)
    > *  IntializeComponent()
    > *  Me.df = df
    > * End Sub

    この 2 箇所の IntializeComponent() の行で、[F9]キーを押してブレークポイントを貼り、
    この行で一時停止させてみてください。



    (※1) からは、後者「Sub New(df As DataSet)」側の IntializeComponent が呼ばれるはずです。
    後者が呼ばれた場合は、引数 df が Nothing で無いことを確認してください。
    もし、引数に Nothing が渡されるとマズイ場合には、IntializeComponent を呼ぶ前に
     If df Is Nothing Then
      Throw New ArgumentNullException("df")
     End If
    などを設けておくとよいでしょう。


    一方、前者「Sub New()」側の IntializeComponent が呼ばれることがあるとすれば、
    それは想定外の呼び出しとなります。
    引数が渡されなければ、Me.df も Nothing のままになってしまうわけで。

    もしも前者が呼ばれるようであれば、それがどこから呼び出されているのか
    コードを見直してみてみてください。

    たとえば、前者を
     Public Sub New()
    のままにしただけなら、コンパイルが通る(ただし実行時エラー)のに、それを
     Private Sub New()
    にしただけでコンパイルエラーになるようであれば、現在のプロジェクト設定
    もしくはコーディングのどこかが間違っているのだと思います。


    本来は前者を削除して、後者だけにしたいところなのですが、その場合、
    特定の条件を満たしたときに、自動生成される *.designer.vb 内で、
    VB のコンパイルエラー BC30109 を生じさせることがあるのが悩ましいところ。

    デザイナコードでエラーが生じると、話がややこしくなるため、
    No87759 では意図的に、引数なしコンストラクタを残すように案内しています。
    (きちんと理解している人なら、前者を削除した状態でも正常に動作するコードを書けるはず)




    > fType.InvokeMember("Form1_Load",
    >          BindingFlags.NonPublic Or

    他の方も書かれていますが、Reflection で解決するのは禁じ手です。
    Reflection が必要となるのは、非常に限定された処理であって、
    今回のケースで使うようなものではありません。


    それに、Form1_Load を自前で呼び出すのも避けるべきです。
    イベントハンドラーを、普通のメソッドのように呼び出すことはもちろん可能ですが、
    これは本来「呼びだされる物」であって、「呼び出す物」ではありませんので。
記事No.87756 のレス /過去ログ151より / 関連記事表示
削除チェック/

■87783  Re[5]: 別フォームにデータを渡したい
□投稿者/ いまそかり -(2018/06/29(Fri) 16:11:32)
    No87773 (WebSurfer さん) に返信
    
    WebSurferさん、回答ありがとうございます。
    
     
    > C# ですがサンプルを書いておきます。Form5 ⇒ Form1, Form6 ⇒ Form2 に読み替えてください。
    > 
    > デザイナで Form5 には Button を、Form6 には ComboBox をドラッグ&ドロップして、必要なイ
    > ベントハンドラを生成しただけです。
    
    
    サンプルコードありがとうございます!
    おかげさまで、無事に実行が成功しました^^
    
    
    >     public partial class Form5 : Form
    >     {
    >         public Form5()
    >         {
    >             InitializeComponent();
    >         }
    
    
    まさかのオーバーロードの書き忘れによるエラーでした…。
    (オーバーロードを両方のFormに書く必要があるのだと知らずに初歩的なミスをしていました)
    
    上記のコードをForm1に入れたらちゃんと動くようになりました!
    
    本当にありがとうございました!
    
    
    
    
    
    
    
    
    ■No87776 (魔界の仮面弁士 さん) に返信
    
    魔界の仮面弁士さん、回答ありがとうございます。
    
    
    
    >><修正後ソースコード>
    >>	'xmlからデータを取得
    >>	Function xmlGet(Byval a As String,Byval b As String)
    > 
    > Function の戻り値のデータ型が示されていません。
    > 戻り値が無いのなら Sub にするべきですし、
    > 戻り値があるのなら、末尾に「As String」などの記述が必要です。
    
    
    すみません、今回の質問やエラーに直接関係ないかなと思って戻り値書いていませんでした。
    あと、As Stringも書き忘れてますね…申し訳ないです。
    
    
     
    
    >>* 'ボタンクリックイベント(Form2が開く)
    >>* Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    >>*  Dim frm As Form2
    >>*  frm = New Form2(df) 
    >>*  frm.Show()  '(※1)
    > 
    > この段階で、df の中身が Nothing になっていたりはしませんか?
     
    
    はい、その段階でなっていました。多分、dsとdfが混在していたことが原因だったとは思うんですが…。
    
    
    
    
    >>* 'Form2のオーバーロード(引数あり)
    >>* Public Sub New()
    >>*  InitializeComponent()
    >>* End Sub
    >>* 'Form2のオーバーロード(引数あり)
    >>* Public Sub New(df As DataSet)
    >>*  IntializeComponent()
    >>*  Me.df = df
    >>* End Sub
    > 
    > この 2 箇所の IntializeComponent() の行で、[F9]キーを押してブレークポイントを貼り、
    > この行で一時停止させてみてください。
    > 
    > (※1) からは、後者「Sub New(df As DataSet)」側の IntializeComponent が呼ばれるはずです。
    > 後者が呼ばれた場合は、引数 df が Nothing で無いことを確認してください。
    > もし、引数に Nothing が渡されるとマズイ場合には、IntializeComponent を呼ぶ前に
    >  If df Is Nothing Then
    >   Throw New ArgumentNullException("df")
    >  End If
    > などを設けておくとよいでしょう。
    
    
    なるほど、勉強になります。
    確かに(※1)からは後者が呼ばれていました。
    何でもかんでもtry-catchで囲むんでなく、if文で例外をthrowするといいんですね。
    万が一のこともあると思うので、ソースコードに追加します。
    
    
    
     
    > 一方、前者「Sub New()」側の IntializeComponent が呼ばれることがあるとすれば、
    > それは想定外の呼び出しとなります。
    > 引数が渡されなければ、Me.df も Nothing のままになってしまうわけで。
    > 
    > もしも前者が呼ばれるようであれば、それがどこから呼び出されているのか
    > コードを見直してみてみてください。
    > 
    > たとえば、前者を
    >  Public Sub New()
    > のままにしただけなら、コンパイルが通る(ただし実行時エラー)のに、それを
    >  Private Sub New()
    > にしただけでコンパイルエラーになるようであれば、現在のプロジェクト設定
    > もしくはコーディングのどこかが間違っているのだと思います。
    >  
    > 本来は前者を削除して、後者だけにしたいところなのですが、その場合、
    > 特定の条件を満たしたときに、自動生成される *.designer.vb 内で、
    > VB のコンパイルエラー BC30109 を生じさせることがあるのが悩ましいところ。
    > 
    > デザイナコードでエラーが生じると、話がややこしくなるため、
    > No87759 では意図的に、引数なしコンストラクタを残すように案内しています。
    > (きちんと理解している人なら、前者を削除した状態でも正常に動作するコードを書けるはず)
    
    
    少しのミスでエラーが起きる世界だと改めて分かったので、
    もっとプログラミングに関しての知識を深めていけるように頑張ります。
    
    引数なしのコンストラクターは参照0個だし必要あるのかなと疑問でしたが、
    これがないだけで発生するエラーがあるんですね…。
    今回は特にコンストラクタに対しての指定はないですし理解も不十分なところがあるので、
    引数なしコンストラクタを書いておくようにします。
    教えていただきありがとうございました。
    
    
    
    
    
    > Reflection が必要となるのは、非常に限定された処理であって、
     
    > それに、Form1_Load を自前で呼び出すのも避けるべきです。
    > イベントハンドラーを、普通のメソッドのように呼び出すことはもちろん可能ですが、
    > これは本来「呼びだされる物」であって、「呼び出す物」ではありませんので。
    
    
    なるほど、できるだけ使用しないべきという訳ではなく、特定の条件下で使用するのがベストなんですね。
    今回のことでイベントハンドラーは呼び出される物だと分かったので、これからは「メソッドと同じ扱いはしない」
    ということを肝に銘じておきます。
    
    
    
    
    
    
    
    
    
    
    回答頂いた皆様、短い間ではありましたが、お付き合いいただき本当にありがとうございました!
    まだまだ初心者ですが、皆様のおかげで多くのことを勉強することができました。
    この場を借りてお礼申し上げます。
    また今後お世話になることもあるかとは思いますが、その時はどうぞよろしくお願いします。
    
記事No.87756 のレス / END /過去ログ151より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -