Winform パネルのボタンの位置
1. パネルの中央にボタンを設定します
this.btnExit.Location = new System.Drawing.Point(pnlButton.Width / 2, pnlButton.Height / 2);
2. パネル上の複数のボタンを自動的に並べ替えます
順序を調整するコード:
/// <summary> /// 设置按钮显示位置 /// </summary> /// <param name="targetPanel">要设置按钮的Panel</param> /// <param name="buttonSpace">按钮之间的间隔</param> public void SetButtonCenter(Panel targetPanel, int buttonSpace) { int length = 0; List<Button> listBtn = new List<Button>(); System.Windows.Forms.Control.ControlCollection c = targetPanel.Controls; foreach (Button btn in c) { listBtn.Add(btn); length += btn.Width + buttonSpace; } int pnlLength = targetPanel.Width; if (length > pnlLength) //本身按钮的长度总和大于了panel的长度,不调整 return; int startPos = (pnlLength - length) / 2 - 10; //左缩进10个点位 int yPos = targetPanel.Height / 2; int xPos = startPos; foreach (Button btn in listBtn) { btn.Location = new System.Drawing.Point(xPos, yPos); xPos += btn.Width + buttonSpace; } }
事前に調整された外観:
コードは次のとおりです:
private void Form1_Load(object sender, EventArgs e) { SetButtonCenter(panelTest, 2); } /// <summary> /// 设置按钮显示位置 /// </summary> /// <param name="pnlButton">需要调整按钮顺序的Panel</param> /// <param name="buttonSpace">按钮间隔</param> public void SetButtonCenter(Panel targetPanel,int buttonSpace) { int length = 0; List<Button> listBtn = new List<Button>(); System.Windows.Forms.Control.ControlCollection c = targetPanel.Controls; foreach (Button btn in c) { listBtn.Add(btn); length += btn.Width + buttonSpace; } int pnlLength = targetPanel.Width; if (length > pnlLength) //本身按钮的长度总和大于了panel的长度,不调整 return; int startPos = (pnlLength - length) / 2 - 10; //左缩进10个点位 int yPos = targetPanel.Height / 2; int xPos = startPos; listBtn.Sort(new ButtonSort()); foreach (Button btn in listBtn) { btn.Location = new System.Drawing.Point(xPos, yPos); xPos += btn.Width + buttonSpace; } } public class ButtonSort : IComparer<Button> { #region IComparer<Button> Members //IComparer<T> 接口:定义类型为比较两个对象而实现的方法。 public int Compare(Button x, Button y) { if (x.TabIndex >= y.TabIndex) return 1; else return -1; } #endregion }
拡張子: クリックしてリンクを開きます

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











この記事では、CのNull Poernter recerferenceの課題を調査します。問題は、問題はnullではなく、その誤用であると主張しています。 記事では、参照前のチェック、ポインターInitialiなど、非参照を防止するためのベストプラクティスの詳細

この記事では、printf内の\ nエスケープシーケンスを使用してcで新しいライン文字を作成し、関数を置く方法について説明します。 機能を詳しく説明し、出力のラインブレークに使用することを示すコード例を提供します。

この記事は、Cコンパイラの選択に関する初心者を案内しています。 GCCは、使いやすさ、幅広い可用性、広範なリソースが初心者に最適であるため、最適であると主張しています。 ただし、GCC、Clang、MSVC、およびTCCも比較して、その違いを強調しています

この記事では、現代のCプログラミングにおけるNullの継続的な重要性を強調しています。 進歩にもかかわらず、Nullは明示的なポインター管理にとって重要なままであり、有効なメモリアドレスがないことをマークすることにより、セグメンテーションの障害を防ぎます。 最高のPRAC

この記事では、初心者向けのオンラインCコンパイラをレビューし、使いやすさとデバッグ機能に焦点を当てています。 OnlineGDBとRepl.itは、ユーザーフレンドリーなインターフェイスと役立つデバッグツールのために強調表示されます。 プログラムやコンパイルなどのその他のオプション

この記事では、C IDEでの効率的なコードコピーについて説明します。 コピーはコンパイラ機能ではなくIDE機能であり、IDE選択ツールの使用、コード折りたたみ、検索/交換、テンプラなど、効率を向上させるための詳細戦略であることを強調しています。

この記事では、オンラインCプログラミングプラットフォームを比較し、デバッグツール、IDE機能、標準コンプライアンス、メモリ/実行の制限などの機能の違いを強調しています。 「最良の」プラットフォームはユーザーのニーズに依存していると主張しています。

この記事では、Cプログラムのコンパイルでの出力Windowsの欠落をトラブルシューティングします。 実行可能ファイルの実行に失敗し、プログラムエラー、誤ったコンパイラ設定、バックグラウンドプロセス、迅速なプログラム終了などの原因を調べます。ソリューションにはchが含まれます
