相変わらずC#で遊んでいるので、またまた備忘録でも。 WebBrowserコントロールに読み込んだHTML中のJavaScript変数を簡単に取得する方法。 もちろんグローバルスコープでないとダメだけど。 <html> <head> <script type="text/javascript"> <!-- var data = '波平'; //--> </script> </head> <body> <script type="text/javascript"> <!-- document.write(data); //--> </script></body> </html> では、波平さんを取得します。 まず ComVisibleAttribute でフォームをCOMから見えるようにしてあげるのと、JavaScript 内で window.exterval を呼び出したときの為に Obj
お世話になります。 仮想リストビューで画像一覧を表示しているのですが、アイテムの選択状態を上手く取得できず困っています。 通常はItems.SelectedImtesで取れるのですが、仮想リストビューだと例外になってしまいます。 そこでOnItemSelectionChangedで取得しようとしたのですが、何故か選択解除のタイミングでイベントが発生しません。仮想リストビューだからなのでしょうか。 とりあえず今はOnDrawItemで取得して変数に保存していますが、今度はスクロールで隠れた画像の選択解除が取得できません。 ですのでOnItemSelectionChangedでShiftキーとCtrlキーの有無を見て、押されていなければ一度全てのアイテムが選択解除されたものとし、その後Invalidate()とUpdate()でOnDrawItemを呼び出しています。 OnDrawItemで現
This article describes feature controls with names that begin with the letters B or C. For links to other feature controls, see Feature Controls. Binary Behavior Security Browser Emulation Child Window Clipping Circular References in Script Management Clipboard Script Control Cross Domain Capture Event Cross Domain Redirection Related topics Binary Behavior Security Microsoft Internet Explorer 6 f
例 次のコードは、単純なビジネス オブジェクトに Sort 対する および Sort メソッドのオーバーロードを示しています。 メソッドを Sort 呼び出すと、Part 型の既定の比較子が使用され Sort 、メソッドは匿名メソッドを使用して実装されます。 using System; using System.Collections.Generic; // Simple business object. A PartId is used to identify the type of part // but the part name can change. public class Part : IEquatable<Part> , IComparable<Part> { public string PartName { get; set; } public int PartId {
WebRequest、WebResponseクラスを使ってファイルをダウンロードし保存する「WebRequest、WebResponseクラスを使ってファイルをダウンロードし表示する」では、指定されたURL(URI)からデータをダウンロードする方法を説明しています。また、ダウンロードしたデータをファイルに書き込む方法は、「バイト型配列をファイルに書き込む」が参考になります。 このような方法により、「http://localhost/logo.gif」をダウンロードして、ファイルに保存する例を以下に示します。 'ダウンロードするファイル Dim url As String = "http://localhost/logo.gif" '保存先のファイル名 Dim fileName As String = "C:\test\logo.gif" 'WebRequestを作成 Dim webreq
複数の配列(またはコレクション)をマージ(合併、連結、合体)するここでは、複数の配列やコレクションをくっつけて1つにする(マージする)方法を紹介します。例えば、{ 1, 2, 3 }と{ 4, 5, 6 }という配列をマージして、{ 1, 2, 3, 4, 5, 6 }という配列を作るということです。 AddRangeメソッドでコレクションのマージを行うコレクションの場合は、AddRangeメソッドで簡単に行うことができます。 AddRangeメソッドはマージするコレクションを末尾に追加しますが、InsertRangeメソッドを使えば、挿入する位置を指定することもできます。 以下に示す例では、AddRangeメソッドを使ってArrayListをマージしています。 'マージする2つのコレクション Dim list1 As New System.Collections.ArrayList(Ne
ハッシュテーブルとは、キー(key)と値(value)のペアを保持しているコレクションである。通常の配列やリストがインデックス番号により各値(各要素)にアクセスできるのに比べて、ハッシュテーブルでは、インデックス番号の代わりにキーを用いて、その各値にアクセスすることができる。キーと、そのキーから連想される(キーに対応付けられている)値のペアを保持しているため、ハッシュテーブルは「連想配列」とも呼ばれる。ハッシュテーブルの特長は、指定したキーから、それに対応した値を高速に得られることである。 .NET Framework 1.xのクラスライブラリでは、ハッシュテーブルはHashtableクラス(System.Collections名前空間)で実装されていたが、.NET Framework 2.0ではDictionaryジェネリッククラス(System.Collections.Generic名
@Jspinylobsterさんが、ScriptタグのないHTMLページでは、WebBrowserコントロールのInvokeScriptメソッドが実行出来ないのではないか?と質問されていました。 結論から入るとHTMLファイルにScriptタグがないとInvokeScriptメソッドで例外を吐きます。どういう場合に発生するのかと対策方法について検討してみました。 **現象を再現させてみた テスト用のHTMLファイルを用意しました。Scriptタグはありません。 |html| UserID: Password: ||< WebBrowserコントロールを使って自動ログイン機能を実装するで書いた通り、ユーザー欄に"hogehoge"を入力するInvokeScriptメソッドを実行してみましょう。 |cs| private void button1_Click(object sender, Ro
恥ずかしながら、ユニット テストをまともに使ったことがない。 重要性は理解しているつもりで、興味もあったのだけど、仕事で触れず、趣味の開発にも取り入れることはなかった。しかし、プログラマが知るべき 97 のことのテストに関するトピックを読んで、関心度がモリモリ上昇。何かをはじめる時は、こういう気分に乗るのがよい。 あと、仕事でユニット テストの採用を提案するとして、自分で使っていないものを勧められようはずもない。使うにしても、簡単なスニペットを書いて、それをテストして…ではダメだ。ユニット テストを考慮していないものに取り入れるほうが現実的だろう。 というわけで、まずは趣味のプロジェクトにユニット テストを導入してみる。プロジェクトは .NET 製なので、ツールには NUnit を選ぶ。 もくじ レガシーコード改善ガイド NUnit のインストール テスト プロジェクトの作成 テスト コー
.NET Frameworkでは、WebClientクラスやHttpWebRequestクラス(どちらもSystem.Net名前空間)などを使用することにより、簡単にWebページやWeb上のリソースにアクセスできるようになっている*。しかしこれらのクラスを利用したアプリケーションは、実行時に非常に時間がかかってしまう場合がある。 例えば次のサンプル・プログラムはInsider.NETのトップ・ページのHTMLを文字列として取得するものだが、筆者の環境では、DownloadStringメソッドの呼び出しが完了するまでに10秒以上の時間を要した(同じ環境で、Internet Explorer(以下、IE)によりWebページにアクセスした場合には瞬時にページが表示される)。 // webget.cs using System; using System.Net; class WebGet { s
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く