Windows
DataGridViewでEnterキーを押すと隣のセルにフォーカスが移動されるようにする を拡張し、隣だけではなく任意のセルにフォーカスが移動できるようにしてみました。
DataGridView に、2 行 3 列で、1 行目が結合した以下のような表題を表示してみます。DataGridViewのCellPaintingイベントで、罫線や文字列を描画します。 +--------------------------------------+ | 結合された1行目の表題 | +------------+------------+…
Githubにアクセスするときの認証方法が変更になっています github.blogWindowsでTortoiseGitを使って、この認証方法でアクセスするには、 Creating a personal access token - GitHub Docs を参考にPersonal Access Tokenを作成する。 Gitリポジトリの下にあ…
Windowsでファイルをバックアップするには xcopy が便利。こんなバッチファイルを作成しておいて、実行すればよい。 set SOURCE=C:\Source set DESTINATION=D:\Backup REM /C: コピー時のエラーを無視する REM /D: コピー先に同名のファイルが存在する場合に…
参照型と値型での Object.Equals メソッド の動作の違い。 参照型: 同一オブジェクトならば true 値型: 保持している値が同じならば true using System; namespace EqualForValueTypeAndReferenceType { class Program { static void Main(string[] args) { …
DataGridView ではチェックボックスだけが表示されテキストを表示できない。そこでチェックボックスに加えて、テキストも表示できるようにしてみた。DataGridViewCheckBoxCell クラスを継承し、テキストも表示できる CheckBoxAndTextCell クラスを作成する。…
コントロールの背景を透過色にするには、 コントロールの BackColor プロパティに Color.Transparent を設定する。 using System; using System.Drawing; using System.Windows.Forms; namespace TransparentLabel { public partial class Form1 : Form { pu…
DataGridView の行や列に区切りを入れるときは、 DataGridViewColumn.DividerWidth DataGridViewRow.DividerHeight を設定する。 using System; using System.Windows.Forms; namespace DataGridViewDividerWidthSample { public partial class Form1 : Form…
DataGridView で、 AutoSizeColumnsMode AutoSizeRowsMode ColumnHeadersHeightSizeMode のプロパティが、自動に設定されているとき、 行や列の追加 セルに値を設定 すると、描画が遅くなる。以下の例では、50 x 50 で 9.2 秒かかった。 using System; using…
マウスやキーボードで範囲を選択する方法。 マウスでドラッグする。 のが普通だが、ボタンを押したままマウスを動かすのは大変なので、 シフトキーを押しながら、 範囲の終わりをマウスでクリック 矢印キー・Homeキー・Endキーで範囲を拡げる という方法もあ…
DataGridView のあるセルの境界線スタイルを変更するには、 CellPainting イベント で、 変更したいセルの AdvancedBorderStyle を設定する。 次のプログラムは、セル (1, 1) の境界線を DataGridViewAdvancedCellBorderStyle.InsetDouble に設定する。e.Adv…
UserControl のキャプションとして使うラベル。 親コントロール内にフォーカスがあるかないかで、背景色を変える。 背景色は、グラデーションで表示する。 using System; using System.Drawing; using System.Drawing.Drawing2D; using System.Windows.Forms…
TextBox のサイズを内容に応じて設定するには、TextRenderer クラスの MeasureText メソッドで表示サイズを計算し、その値を TextBox に設定する。TextBox のサイズは境界を含んでいる。そのため BorderStyle が None 以外の場合、計算したサイズをそのまま…
ポップアップパネル - プログラマのメモ書きtt195361.hatenablog.comで表示したポップアップからさらにポップアップを表示すると、もともと表示していたポップアップが閉じてしまう。これを閉じないようにするには ToolStripDropDown.OwnerItem プロパティ …
DataGridView の AutoSizeColumnsMode プロパティ を DataGridViewAutoSizeColumnsMode.Fill に設定したときの動作について。 行の横幅は、ちょうど DataGridView の幅になる。 各カラムの幅は、DataGridViewColumn.FillWeight プロパティ で設定した割合に…
System.Windows.Forms.Control の Padding プロパティと Margin プロパティの違いは、 Padding は Control の中に空けるスペース。 Margin は Control の外に空けるスペース。 以下は注意点。 Dock プロパティでドッキングしたコントロールの Margin は使わ…
ポップアップパネルの作り方。ポップアップパネルは、 パネル外をクリックすると閉じる。 表示してもフォーカスは親フォームに残る。 というもの。手順は、 中身として表示するコントロールを含む ToolStripControlHost を作成し、 ToolStripDropDown を作成…
DataGridView クラス の CellEnter イベント で、選択されたセルを別のセルに変更するために、 private void dataGridView1_CellEnter(Object sender, DataGridViewCellEventArgs e) { dataGridView1[columnIndex, rowIndex].Selected = true; } を実行した…
DataGridView クラス の Rows.Add メソッド で行を追加しようとしたら、 DataGridView コントロールの列のうち少なくとも 1 つにセルテンプレートが指定されていません。 というエラーが発生した。DataGridViewColumn.CellTemplate プロパティ の説明にある…