タグ

ブックマーク / atmarkit.itmedia.co.jp (27)

  • 日時や時間間隔の加減算を行うには?

    連載目次 .NET Frameworkのクラス・ライブラリには、時間を表す構造体が2種類ある。1つは特定の日時を表すDateTime構造体(System名前空間)、もう1つは時間間隔を表すTimeSpan構造体(System名前空間)だ。稿では、これら2つの構造体における加減算について解説する。 日時(DateTime構造体)における加減算 2つのDateTimeオブジェクトは、両者を加算することはできないが、一方からもう一方を減算し、その時間間隔をTimeSpanオブジェクトとして求めることができる。これにはDateTime構造体のSubtractメソッドを使用するが、C#では、-演算子(マイナス演算子)がオーバーロードされているため、2つのオブジェクト同士の単純な引き算として記述できる(以下のサンプル・コードはすべてVB.NET)。 Dim startDateTime, endDat

    日時や時間間隔の加減算を行うには?
  • DataGridViewコントロールで行番号を表示するには?[2.0のみ、C#、VB] - @IT

    DataGridViewコントロールには行番号を表示する機能はないが、行ヘッダ部分に行番号を直接描画することによりこれを実現できる。次の画面はそのようにして行番号を表示しているDataGridViewコントロールである。 このように行番号を表示するには、各行が描画された後に(行ごとに)発生するRowPostPaintイベントのタイミングで、その行の「インデックス番号+1」を行ヘッダのセル内に収まるように描画すればよい。 RowPostPaintイベント・ハンドラでは、第2パラメータとして渡されるDataGridViewRowPostPaintEventArgsオブジェクト(System.Windows.Forms名前空間)から、描画に必要なGraphicsオブジェクトや、描画対象となる行全体の長方形の座標などが得られる。 以下に今回の行番号表示に必要なデータを列挙する(変数eはDataGr

  • Excelファイルにアクセスするには?[C#、VB]

    連載目次 .NETには「COM相互運用」と呼ばれる機能があり、COMコンポーネントを手軽に呼び出すことができる。一方、ExcelをはじめとするOffice製品は、その機能をマクロ(VBA)などからも活用できるようにCOMコンポーネントとして実装されている。このため、COM相互運用を使えば.NETアプリケーションから容易にExcelやWordのファイルを開き、それをさまざまに操作することが可能だ。稿ではその基的な記述方法として、Excelファイルをオープンしてワークシート上のセルの内容を参照する例を紹介する。 参照の追加 アプリケーションからExcelにアクセスするには、まずExcelが公開するCOMコンポーネントへの参照をプロジェクトに追加する。これには[参照の追加]ウィンドウで[COM]タブを選択し、「Microsoft Excel 12.0 Object Library」(Exce

    Excelファイルにアクセスするには?[C#、VB]
  • 文字列にエスケープ文字を埋め込むには?[C#/VB/WPF]

    連載目次 エスケープ文字とは、それに続く文字を、文字来の意味とは別の意味に解釈することを示す文字である。C#におけるバックスラッシュ記号「\」などだ。また、ダブルクォーテーション記号「"」のように、その文字そのものが、文字来の意味とは別の意味に解釈されるものもある。そういった文字を来の意味のまま文字列に含めるにはどうしたらよいだろうか? 稿では、C#とVisual Basic(以降、VB)、そしてWPFのXAMLの場合について解説する。 特定の方法をすぐに知りたいという方は以下のリンクを活用してほしい。 C#:通常の文字列 C#の通常の文字列リテラルでは、バックスラッシュ記号「\」がエスケープ文字だ。また、ダブルクォーテーション記号「"」や改行記号などの特殊文字は、そのままでは文字列リテラル内に記述できない。そういった文字を表記するには、バックスラッシュ記号「\」で始まるエスケープ

    文字列にエスケープ文字を埋め込むには?[C#/VB/WPF]
    led-centipede
    led-centipede 2019/12/31
    “逐語的文字列”
  • 「ListBoxの複数選択時のSelectedValueの取得方法について」(1) Insider.NET - @IT

    IT 会議室 Indexリンク Windows Server Insider Insider.NET System Insider XML & SOA Linux Square Master of IP Network Java Solution Security & Trust Database Expert RFID+IC リッチクライアント & 帳票 Server & Storage Coding Edge @ITクラブ Cafe VB業務アプリケーション開発研究 @IT SpecialPR

  • ExcelなしでExcelファイルを操作するには?(純正SDK編)[.NET 3.5、C#/VB]:.NET TIPS - @IT

    ExcelなしでExcelファイルを操作するには?(純正SDK編)[.NET 3.5、C#/VB]:.NET TIPS Open XML SDKを使用して、Excelファイル(.xlsxファイル)をC#やVisual Basicから作成したり、それに対して書き込み/読み込みを行う方法を説明する。 連載「.NET TIPS」 Microsoft Office(Word/ExcelPowerPoint)のファイルをプログラムから操作したいとき、OfficeがインストールされているWindows上ならばCOMインタフェースが使えることはよく知られている。では、Officeがインストールされていない環境のときは、どうしたらよいだろうか? Office 2007から採用されたOpen XML形式のファイル(拡張子が.docx/.xlsx/.pptx)であれば、Officeがなくても、また、.NET

    ExcelなしでExcelファイルを操作するには?(純正SDK編)[.NET 3.5、C#/VB]:.NET TIPS - @IT
  • 【C#】 @IT:.NET TIPS Windowsフォームで別スレッドからコントロールを操作するには? - C# VB.NET VS.NET

    連載目次 Windowsフォームでスレッドを作成した場合、フォームやフォーム上のコントロールに対しては、そのスレッドからの操作(フォームやコントロールが持つメソッドの呼び出しやプロパティの読み書き)は動作が保証されない。稿ではそのような処理を<安全>に行うためのプログラミングについて解説する。 フォーカスの移動を行うサンプル・プログラム 例えば、Visual Studio .NET(以降、VS.NET)でWindowsアプリケーションのプロジェクトを新規作成し、次の画面のように、2つのテキストボックス(TextBox1とTextBox2)と1つのボタン(Button1)を配置したとする。

    【C#】 @IT:.NET TIPS Windowsフォームで別スレッドからコントロールを操作するには? - C# VB.NET VS.NET
  • リストボックスの各項目に値をひも付けるには?[C#、VB] - @IT

    Windowsフォームのリストボックスは、選択可能な複数の項目をリストで表示し、ユーザーにより選択された項目に基づいて何らかの処理を行うというのが基的な動作だ。このとき、リストボックス内の各項目に関しては、表示されるテキストや、その項目が選択されたときに得られる値を、DisplayMemberプロパティおよびValueMemberプロパティにより制御できる。稿では、これらのプロパティの使い方について簡単にまとめる。 以下ではリストボックスを使用した簡単なサンプル・プログラムを作成しながら解説していく。リストボックスに表示するサンプル・データとしては、Twitter(ツイッター)から取得した“つぶやき”を使用してみよう。まずは、そのためのメソッドを用意する。 データソースの準備 以下のリストは、Twitterからパブリック・タイムラインを取得し、配列として返すメソッドである。ここではLi

  • 「Officeアドイン」の作り方と、できること/できないこと

    ※2015/08/08 更新:「Office用アプリ」(App for Office)は「Officeアドイン」(Office Add-ins)に名称変更されました。これに合わせて、文の記述を一部修正しました。 ※2016/01/15 更新:Office 2016におけるOfficeアドインの機能強化に合わせて、文の記述を一部修正しました。 前編「JavaScriptで誰でも簡単に作って稼げる「Officeアドイン」とは?」では、Officeアドインの使い方とプログラミングについての基礎を説明した。今回(後編)は、このOfficeアドインを使って、現実のアプリを構築するうえで押さえておくべき考え方や留意事項などを、いくつかのテーマにわけて見ていきたい。 基パターンを組み合わせよう ―― 作業ウィンドウ・アドイン、コンテンツ・アドイン 前編で紹介したように、Officeアドイン(=Of

    「Officeアドイン」の作り方と、できること/できないこと
  • TextBoxコントロールで32767文字以上のテキストを入力可能にするには?[C#、VB] - @IT

    複数行入力対応のTextBoxコントロール TextBoxコントロール(System.Windows.Forms名前空間)は、基的に1行(=単行)でテキスト・データを入力するためのコントロールだが、Multilineプロパティに「true」を設定することで複数行のテキスト・データの入力が可能になる。 次の画面は、Visual Studio 2005(以降、VS 2005)のIDEを用いてMultilineプロパティを設定しているところだ。

  • テキストボックスのキャレットを文字列の末尾に移動させるには?

    連載目次 Windowsフォームで使用するテキストボックスは、次の画面例のように、新たにフォーカスを受け取ると、テキストボックス内に入力された文字列全体を選択状態にする仕様になっている。

  • WPFやWindowsフォームでEdgeのWebViewを使うには?[Windows 10 1803以降]

    WPFやWindowsフォームでEdgeのWebViewを使うには?[Windows 10 1803以降]:.NET TIPS Windows 10 1803からは、Windows FormsアプリやWPFでもEdgeベースの新しいWebViewコントロールが使える。その使い方をまとめよう。

    WPFやWindowsフォームでEdgeのWebViewを使うには?[Windows 10 1803以降]
  • 【 less 】コマンド(基本編)――メッセージやテキストファイルを1画面ずつ表示する

    LinuxコマンドTips一覧 連載では、Linuxの基的なコマンドについて、基的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、メッセージやテキストファイルを1画面ずつ表示する「less」コマンドです。 lessコマンドとは? 「less」は、テキストファイルを1画面ずつ表示するコマンドです。「less ファイル名」で実行する他、「コマンド | less」のように、別のコマンドの実行結果を1画面ずつ表示する場合にも使われます。 [Enter]キーで1行、スペースキーで1画面先に進める他、上下矢印キーによるスクロールも可能です。表示を終了するには[Q]または[q]キーを入力します。 同じ用途のコマンドに「more」があります(連載第2回)。lessコマンドはmoreコマンドよりも機能が多く、画面内で検索したり、上にスクロールしたりすることが可能で

    【 less 】コマンド(基本編)――メッセージやテキストファイルを1画面ずつ表示する
  • 正規表現を使ってパターンに一致する全ての文字列を抽出するには?[C#/VB]

    RegexクラスのMatchesメソッドを使い、ある文字列に含まれている特定のパターンを抽出する方法と、マッチする範囲を限定していく方法を解説する。 連載目次 ある文字列から、正規表現パターンに一致する全ての部分文字列を取り出すには、Regexクラス(System.Text.RegularExpressions名前空間)のMatchesメソッドかMatchメソッドを利用する。稿では、Matchesメソッドの使い方を解説するとともに、ちょっと高度な正規表現の書き方も紹介する。 なお、もう一方のMatchメソッドについては「.NET TIPS:正規表現を使って部分文字列を取得するには?[C#、VB]」を、正規表現の基的な書き方は「.NET TIPS:正規表現を使って文字列がパターンに一致するか調べるには?[C#/VB]」を参照していただきたい。また、RegexクラスのMatchesメソッド

    正規表現を使ってパターンに一致する全ての文字列を抽出するには?[C#/VB]
  • 連載:C#入門 第5回 C#のデータ型(3/3) - @IT

    ボクシング(boxing) 複数のデータを一括して扱う処理を記述する場合に、どのようなデータでも収納できる便利な機能を記述できるとプログラムがすっきりする。だが、実用言語で、これを達成したものは多くはない。例えばJavaでは、数値型はクラスではないため、任意のクラスのインスタンスを扱う入れ物となるクラスを設計しても、そのままでは数値を格納できない。そのため、数値を格納するラッパ・クラス(wrapper class)のインスタンスに一度数値を入れてから、それを格納する必要がある。Visual Basic 6.0のVariant型は何でも格納できるのだが、その代わり、値を入れるときは普通の代入、参照を代入する場合はsetステートメントと使い分ける必要がある。 これに対して、C#は、すべてのクラスのスーパー・クラスを辿っていくと、最後にたどり着くobject型に、すべてのデータの参照を格納するこ

  • 西暦と和暦を変換するには?

    また、元号を略称(「平」や「H」など)で表示する方法については、.NET TIPS「日付の年号を略称で表示するには?[C#、VB]」をご覧いただきたい。新元号への対応を確実に行うために独自の年号テーブルを持つ方法についても、「日付の年号を表示するには?[独自テーブル参照編]」で紹介している。 和暦についての情報を得る 和暦に関する情報は、JapaneseCalendarクラス(System.Globalization名前空間)が提供してくれる。このクラスはCalendarクラス(System.Globalization名前空間)を継承したもので、同じように世界中のさまざまな暦が、このクラスを継承したクラスとして存在している。 以下に、このJapaneseCalendarクラスを用いて、日付時刻を保持するDateTime構造体に含まれる年情報を、年号と年数で取得するサンプルプログラムを示す。

    西暦と和暦を変換するには?
  • 数値を右詰めや0埋めで文字列化するには?[C#、VB]

    稿は2004/01/30に初版公開、2008/07/10に改訂された記事を再改訂し、C# 6.0/Visual Basic 14(以下、VB 14)の補完文字列についての記述を追加したものです。また、稿のコードは全てC# 6.0/VB 14で動作を確認しました。 数値をファイルや帳票に出力する際には、文字列の幅を固定し右詰めにしたり、0埋めで出力したりしたい場合がある。このような用途には、Stringクラス(System名前空間)のFormatメソッドを使うのが簡単だ。 Formatメソッドでは、書式を指定する「書式指定文字列」と、それに対応するオブジェクトを引数で指定する。稿では、よく用いられるであろう整数値の文字列化に絞って解説する。 また、C# 6.0/VB 14では、「補間文字列」(interpolated string)という機能を使うことで、StringクラスのForma

    数値を右詰めや0埋めで文字列化するには?[C#、VB]
  • ArrayListとListの違いとは?[C#/VB]

    連載目次 配列のように使えて長さは可変のコレクションが、.NET Frameworkには2つある。ArrayListクラス(System.Collections名前空間)とList<T>クラス(System.Collections.Generic名前空間)だ。両者の違いは何だろうか? そして、どちらを使うべきだろうか? 結論から言っておくと、Listを使うべきなのだ。稿では、両者の使い方や変換方法、そしてパフォーマンスについて解説していく。 特定のトピックをすぐに知りたいという方は以下のリンクを活用してほしい。

    ArrayListとListの違いとは?[C#/VB]
  • HttpClientクラスでシフトJISのWebページを取得するには?[C#、VB]

    .NET Framework 4.5で新設されたHttpClientクラス(System.Net.Http名前空間)のGetStringAsyncメソッドを使うと、簡単にWebページの内容を文字列として取得できる。しかし、文字コードにシフトJISを使っているWebサイトでは文字化けしてしまう。どうすれば文字化けさせることなく取得できるだろうか? 稿では、そのような文字化けが発生する条件を説明し、そんな場合にWebページの内容を文字列として取得する方法を解説する。 文字化けが発生する条件 HttpClientクラスのGetStringAsyncメソッドを使ってWebページの内容を文字列として取得する方法は、「.NET TIPS:HttpClientクラスでWebページを取得するには?[C#、VB]」で紹介した(そのコードを、以降では「以前のコード」と呼ぶ)。なお、その記事で解説していること

    HttpClientクラスでシフトJISのWebページを取得するには?[C#、VB]
  • 【 wget 】コマンド――URLを指定してファイルをダウンロードする

    連載は、Linuxのコマンドについて、基書式からオプション、具体的な実行例までを紹介していきます。今回は、「wget」コマンドです。

    【 wget 】コマンド――URLを指定してファイルをダウンロードする