投稿

2017の投稿を表示しています

タブコントロールのタブは非表示にできたんだ!

WinFormsのタブコントロールには、タブの表示を切り替える方法が無くて不便だ。たとえば、下記のような指定ができない。 this.tabControl1.TabPages[0].Visible = false; と思っていたのだが、実はできた。

'global::System.CodeDom.Compiler.GeneratedCodeAttribute' 属性が重複しています。

イメージ
フォームにPNG画像を貼ったら、なぜかビルドエラーになるわけです。イメージを貼り付けただけなのに、エラーが出まくる。

VS2017でビルドが失敗したのにエラー一覧に表示されない件

ビルドしたいプロジェクトAがあって、Aから別のB.dllファイルを参照しているときに、Aのターゲットフレームワークが、Bのよりも古いと、ビルドエラーが起きるようだ。

VisualStudio2017でアイコンエディタが使えない

イメージ
VisualStudio2017でC#で開発していると、アイコンエディタが使えないことに気がついた。アイコンを作りたいのに作れない。

コンパイラが必要とするメンバー 'Microsoft.CSharp.RuntimeBinder.Binder.Convert' がありません

ターゲットフレームワークを .NET Framework3.5 から NET Framework4.6.2 に変えたところ、見慣れないビルドエラーが起きた。

型または名前空間の名前 'DataVisualization' が名前空間 'System.Windows.Forms' に存在しません (アセンブリ参照があることを確認してください)。

イメージ
数年前に作ったアプリで、チャート部品を使っていたものを、VisualStudio2017でビルドするとエラーになった。

eventは1行で宣言できる

これまで、イベントハンドラを宣言するときは、delegateを宣言してからevent文を書いていた。さすがにC#も進化したことだし、もっと簡単に書けるのではと調べたら、書けるのだった。

新しい元号への対応

新しい元号への対応についてマイクロソフトにブログができていた。 Japan New Era Name Support Blog

VisualStudioのアイコン集

VisualStudioでアプリを作るときに使えるアイコン集は、マイクロソフトのサイトからダウンロードできる VisualStudio2017用を探したけど、見つからなかった、、、 Visual Studio Image Library VS2012からVS2015を含むとあります。山のようにアイコンがあるので、探すのが大変。最近のアイコンは平べったくなってます。

コンボボックスの最大表示行を指定できない

コンボボックスには項目の表示数を指定する「MaxDropDownItems」というプロパティがあるのだけど、値を設定しても有効にならない。

チェックボックス付きのコンボボックス

イメージ
前々から作りたかったチェックボックス付きのコンボを作ってみた。1年前にMSDNに偶然サンプルコードを見つけてから試行錯誤の末にようやく使えそうになってきたので、まとめてみる。

SQLでTrueを代用するには

SQLServerにはbool型が無いので、条件式で「where [英語] < 60 or true」みたいな式は書けない(この式だと全件一致なのでまあ式としての意味はない)。

メッセージボックスの簡単メソッドを作るのは一度は通る道

だけどメッセージボックスを簡単に使えるようなメソッドを作るのは、なにか違うような気がしている。

テーブルの列名の一覧を得るのに時間がかかるときは

テーブルに900列もあると、テーブルの列名の一覧を得るのにえらく時間がかかってしまう。数秒から10秒くらい待たされる(体感)。

変数 'XXX' は宣言されていないか、または割り当てられていません

イメージ
ユーザーコントロールを作って、フォームデザイナで画面に貼り付けて、保存する。そこまではよいのだけど、もう一度、フォームデザイナで画面を開こうとするとエラーが起きる。

テーブルを他のパソコンへコピーしたい

イメージ
データベースにあるテーブルを内容を含めて、他のパソコンのデータベースへコピーしたい。ネットワークでコピーする手もあるだろうけど、ここでは、SQLを使う方法を。

デュアルモニタでVisualStudioのフォーム画面がつぶれる

イメージ
SurfaceをデュアルモニタにつないでVisualStudioでフォームを表示すると、画面が縮んで文字がつぶれて表示されることがある。

先日Visual Studio Team Servicesにアクセスできなくなった

イメージ
8月3日にVisualStudioのTeam Servicesが使えなくなって大変あせった。

現在のコマンドで重大なエラーが発生しました。結果は破棄しなければなりません。

イメージ
Azureの仮想マシンのWindows10にSQLServer2014をセットアップして、特定のテーブルを作ろうとするとエラーが起きる。仮想マシンではない「生」PCだとエラーは起きない。なんとも不思議。

エクセルでCSVファイルをUTF-8で保存する

イメージ
エクセル2016では、UTF-8でCSVファイルを保存できるようになっていた。これ、いつからできるようになったの?

MemoryStreamの使い方のまとめ

オブジェクトの内容をXMLに書き出すのを調べているときに、MemoryStreamの使い方もしらべたので、まとめておく。

(C#)オブジェクトをファイルに保存して復元する・その2

イメージ
SQLの条件式のオブジェクトをファイルに保存して、そこから復元する試みの続き。前回はJSONでやってみたが問題があったので、今回はXMLでやってみる。 エンコードの問題を追記した。2017/10/16

エクセル2013でオレンジ色が緑色に変わる!

イメージ
以下の操作をしたところ、セルの色が変わってしまった。 エクセル2010でセルの背景色をテーマ色のオレンジで塗る。ワークブックを保存する。 保存したブックをエクセル2013で開く。(この時点では オレンジ色 )オレンジ色のセルをコピーする。 ブックを新規作成する。そこにコピーしたセルを貼り付ける。(この時点で 緑色 ) どうなっているの?

古い雑誌を捨てた

イメージ
古い雑誌が出てきた。UNIX Magazine。1988年だから29年前か。

(C#)オブジェクトをファイルに保存して、読み込んで復元する

イメージ
オブジェクトの内容をファイルに保存して、後日、そのファイルから読み込んでオブジェクトを復元する。たとえばソフトを終了するときにソフトの設定情報オブジェクトを保存して、次回の起動時に設定を復元する、ということをしたい。これを.NETのクラスで実装しようと何度か試みているのだが、どうもうまくいかない。

(C#)継承クラスの引数付きコンストラクタ

イメージ
クラスを継承したとき、コンストラクタの定義も省略できるのだろうかと調べてみたが、できないようだ。ただ、基底クラスのコンストラクタと同じ内容を書かなくてもよい記法はあった。

パソコンの識別情報を得る

ソフトにプロテクトをかけたい、特定のパソコンだけで使えるようにしたい、というときには、まずはパソコンの識別情報をゲットする必要がある。

SQLで乱数を使ってテストデータを作る

イメージ
SQLServerには乱数を求めるRAND関数があるので、これを使ってテストデータを作れそうだが、ちょっと簡単ではなかった。

VisualStudio2017のエクセルアドイン

イメージ
VisualStudio2017 がでたのでセットアップしてみた。エクセルアドインの新規プロジェクトを作ってみたら、JavaScriptで作れるのか、、、これはびっくり。

エクセルのCOMアドインからヘルプを開きたい

イメージ
エクセルのアドインをC#で作っていて、ヘルプをワードで書いてPDFで保存して用意したのだけど、アドインをセットアップしたときに、PDFファイルがどこに保存されているのかわからないので、PDFファイルを開けない。

select文が遅くなったら

イメージ
selectの問い合わせがすごく時間がかかる、タイムアウトしたみたいだ、台帳テーブルの一部を削除して、追加したら、こうなった、、、と云う問題が発生して1日かけて調べてみた。

新しいテーマが出ていたので変えてみた

最新の記事が大きく表示されるのだけど、こういうテーマのかな。

(SQL)3つのテーブルをjoinするクイズ

イメージ
以下の3つのテーブルがあるとする。

エクセルの乱数を使ってテスト用のデータを作る

イメージ
ソフトを作るときはテスト用のサンプルデータが必要となります。作りながら、サンプルデータを読ませてどんな感じかを確認しながら進めていくわけです。

tfsのプロジェクトを変更履歴も含めて移行したい

今まで作ってきたソースを、変更履歴も含めて移行したい。tfs(Team Foundation Service)を使っていて、仕事用のエリアに私的なソースコードもいれていたので(公私混同ですね)、それを別のアカウントのソース管理へ移行したい。

(C#)半角文字列を全角に変換する

イメージ
半角文字を入力してトラブルが起きたという話を聞いたので、半角文字列を全角に変換するあたりのことをまとめてみる。しかし、半角、全角なんて20世紀の遺物と思っていても、いまだに続いている。みんな全角になってしまえばいいのに。

コンボボックスのDataSourceプロパティの使い方

イメージ
コンボボックスに表示するデータを設定するのを簡単にする工夫をまとめます。コンボボックスのDataSourceプロパティを上手に使いましょう。(2017/8/30追記)

(SQL)「いわき」と「イワキ」がGroupByでも区別されない

イメージ
SqlServerの照合順序でひらがなとカタカナを区別しないモードにしていると、GroupByでも区別されない。

署名中にエラーが発生しました: パス C:\Users\***\bin\signtool.exe で SignTool.exe が見つかりませんでした。

イメージ
もうひとつ、エクセルアドインのセットアップを作っているときに起きたエラーを。 アドインに署名するように設定して「今すぐ発行」すると、このエラーになる。せっかくデジタル証明書を購入したのに、この仕打ち。

必須コンポーネント ダイアログ ボックスで [次の場所から必須コンポーネントをダウンロードする] を有効にするには、項目 'Microsoft .NET Framework 4.5 (x86 および x64)' のファイル 'DotNetFX45\dotNetFx45_Full_x86_x64.exe' をローカル コンピューターにダウンロードする必要があります。

イメージ
VSTOでエクセルのアドインを作ったときは、VisualStudioの「公開」画面から「今すぐ発行」をクリックしてセットアップを作ります。このとき「必須コンポーネント」で「アプリケーションと同じ場所から必須コンポーネントをダウンロードする」を選ぶと、エラーがでるわけです。

VisualStudio2017RCにはWindowsFormsが無かった(というのは勘違い)

イメージ
VisualStudio2017RCがダウンロードしてインストールしてみた。Community版もあったのでそれをインストール。

ポップアップウインドウを表示する

イメージ
下記のようなポップアップ画面を表示する手順をまとめる。ポップアップ画面は「閉じる」ボタンや「×」をクリックしなくても、画面以外の場所をクリックすると勝手に閉じてくれるというウインドウのこと。ツールチップスの上位版みたいな。

エクセルでバーコードを表示する

イメージ
エクセルでバーコードを表示するには、アクセスのバーコード部品を使うと簡単にできる。

エクセルの名前管理には同じ名前を登録できる

イメージ
エクセルには複数個のセルに名前を付ける便利な機能がある。参照式を書くときによく使うのだが、困ったことに同じ名前が登録できてしまう。

ウイザード形式の画面を作るには

イメージ
ウイザード形式の画面というのは、処理内容が複数ページの流れになっていて、最初のページから順に処理を進めていく形式の画面のこと。ページの順番に入力項目、処理内容を示してくれるので、ソフトのことにあまり詳しくない人にもやさしい画面なのだ。

メソッド内メソッドを書く

C#にはLinqという便利な機能があり、これを使うとメッソドの中にメソッドを書くことができる。メソッドをわざわざ書くまでもないような小さな関数を書きたいときに超便利。

SqlServerのBackupフォルダのパスをゲットする

イメージ
SqlServerではバックアップコマンドを実行したときにファイルが作られるデフォルトのフォルダがある。たとえば、SQL Server 2008 では「C:\MSSQL$インスタンス名\MSSQL10_50.インスタンス名\MSSQL\Backup」がそれだ。

エクセルのバージョンはエクセルに聞けばよい

C#でエクセルのバージョンを調べる方法をこれまでまとめてきたが、エクセルのバージョンならエクセルに聞けばよいのでは思いついたので、この方法も記録する。

エクセルの実行ファイルのパスをゲットする

エクセルの実行ファイルのパスをゲットする手順。マイクロソフトのサポート情報に手順が載っているので、それを参考にする。

エクセルのサービスパックのバージョンを調べる

イメージ
エクセルのサービスパックのバージョンを調べる手順をまとめてみる。

エクセルでユニコードの文字コードをゲットする

イメージ
エクセルにはUNICODEという関数があるので、文字コードを簡単にゲットできる。

コンボボックスとデータグリッドビューにテーブルのデータを表示する

イメージ
少し前の記事 の続きとして、データグリッドビューも貼って、コンボボックスと同じようにデータソースを設定してみる。