1

Windows フォーム アプリケーション (c#) で数独フィールドを作成しています。

TableLayout を使用して、ボックスに数独に表示される数字のラベルを配置しました。今度は、3x3 セルのすべてのグループの周りに太い境界線が必要です (数独のように)...

CellPaint オブジェクトを試していますが、境界線のグループの周りに境界線を設定できません...

4

3 に答える 3

0

ステップ1

  • ユーザー コントロールを作成します。
  • 背景を黒、余白を 0、0、0、0、パディングを 3、3、3、3 に設定します。
  • 3 つの行と 3 つのセル (それぞれ 33%) を持つ TableLayoutControl を追加します。
  • TableLayoutControl Dock を Fill に、BackColor を Black に設定します。
  • 各セルにラベルを追加、マージン 1、BackColor 白

ステップ2

  • 3x3 セル (それぞれ 33%) で別の UserControl を作成します。
  • 最初の UserControl のインスタンスをすべてのセルに追加します
  • これで、2 つのコントロールが隣り合っている二重の境界線ができましたが、個々のユーザー コントロールのパディングを設定することで、これを簡単に調整できます。真ん中のものを 3、3、3、3 のままにして、外側のコントロールを変更することをお勧めします

これがサンプルです。左は UserControl1、右は 9x UserControl1の UserControl2
です。外側にパディング 4、内側にパディング 2 を使用しました。

サンプル

于 2013-04-04T13:14:08.330 に答える
0

ラベルを作成するためにコードを変更する必要があり、このようにしています...

    const int 間隔 = 30; //ruimte tussen kotjes
                    int aantal = (int)nudColsPerBlock.Value * (int)nudRowsPerBlock.Value; //rij/kolomあたりの合計aantal kotjes
                    Label[][] SudokuRaster = new Label[aantal][];
                    for (int x = 0; x

しかし、いくつかのラベルの間にはまだ太い境界線が必要です。ヒントはありますか?

于 2013-04-30T16:47:49.613 に答える
0

左上のセルにパネルを追加して、その RowSpan と ColSpan を 3 に設定してみてください。その後、任意の境界線を描画できます。

于 2013-04-04T12:48:40.283 に答える