|
分類:[C#]
中さん、こんにちは。お返事ありがとうございます。
> 画面かなんかと、ポイントになりそうなソース出せませんか?
選択されたセル上にテキストボックスを表示するメソッドのソースを提示させていただきます。
//スプレッドシートの格子はDrawRectangle()をfor文でまわして描画しています /**********定義してあるメンバ************************* int cellWidth, cellHeight; //セルの幅と高さ int lineWidth; //格子線の太さ int currentColumnIndex,currentRowIndex; //選択しているセルのインデックス int IncludeClient(Rectangle rect); //選択したセルがコントロールのクライアント領域からはみでているか調べるメソッド ******************************************************/
//選択されたセル上にテキストボックスを表示 private void EnterTextBox(int currentColumnIndex, int currentRowIndex) { Rectangle rect= new Rectangle(currentColumnIndex * cellWidth, currentRowIndex * cellHeight, cellWidth, cellHeight - lineWidth);
if(IncludeClient(rect) == -1)//下部がはみでているとき { AutoScrollPosition = new Point(rect.Right + lineWidth - ClientRectangle.Right, rect.Bottom + lineWidth - ClientRectangle.Bottom); } else if(IncludeClient(rect) == 1)//上部がはみでているとき { AutoScrollPosition = new Point(rect.Right + lineWidth - ClientRectangle.Right, rect.Top + lineWidth - ClientRectangle.Top); }
textBox.Visible = true; textBox.Size = new SIze(cellWidth - lineWidth, cellHeight - lineWidth); textBox.Location = new Point(AutoScrollPosition.X + lineWidth + cellWidth * currentColumnIndex, AutoScrollPosition.Y + currentRowIndex * cellHeight + lineWidth); textBox.Focus(); }
不備・不足などがありましたらご指摘をお願いします。
|