質問
描いた古い長方形を削除して、新しい長方形を描くことはできますか?
private void panel1_MouseClick(object sender, MouseEventArgs e)
{
Graphics g = this.panel1.CreateGraphics();
Pen pen = new Pen(Color.Black, 2);
g.DrawRectangle(pen, 100,100, 100, 200);
g.dispose();
}
正しい解決策はありません
他のヒント
あなたのタスクリストに添付されているItemUpdated Handlerを持つイベント受信者が行く方法です。
これは通常、描画したいオブジェクトのコレクションを維持することによって行われます。マウスのクリックはこのコレクションを更新し、ウィンドウ(または影響領域)を伝えて更新する必要があります。これには、窓が画面外に移動し、他の窓の後ろに隠れている場合、最小化などを描いた場合、描いたものを保存するという大きな利点があります。
初歩的なソリューションの場合、一般的な抽象型クラスから派生した描画可能な形状タイプの階層を作成し、コレクションのリストを使用します。ベースシェイプクラスには、派生クラスがオーバーライドする抽象的な描画方法があります。
より産業用強度のソリューションについては、2Dシーングラフを探してください。
使用できます Graphics.Save()
と Graphics.Restore(state)
そのための方法。例えば:
private void SaveRestore2(PaintEventArgs e)
{
// Translate transformation matrix.
e.Graphics.TranslateTransform(100, 0);
// Save translated graphics state.
GraphicsState transState = e.Graphics.Save();
// Reset transformation matrix to identity and fill rectangle.
e.Graphics.ResetTransform();
e.Graphics.FillRectangle(new SolidBrush(Color.Red), 0, 0, 100, 100);
// Restore graphics state to translated state and fill second
// rectangle.
e.Graphics.Restore(transState);
e.Graphics.FillRectangle(new SolidBrush(Color.Blue), 0, 0, 100, 100);
}
http://msdn.microsoft.com/en-us/library/system.drawing.graphics.restore.aspx
私は日々と戦っています。カスタム編集フォームには70フィールドの制限があります。これには、添付ファイル、変更、変更された、作成、作成された、作成されました。私はSP2010にいますが、この問題は2013年にもあります。このBook SharePoint Designer 2010は、Hughes、P1329によって解除されました。
Enterprise SharePointのライセンスがある場合は、InfoPathでフォームを編集することでこれを回避できます。それに失敗した場合は、どういうわけかフォームフィールドの数を減らすことができるかどうかを確認してください。たとえば、当社の場合は、項目の作成時に入力されているが、その後変更されるべきではない情報がいくつかありますので、編集フォームには必要ありません。まだ表示形式に入れることができます。
別のオプションは、別の役割を持つユーザーに複数の編集フォームを持つことができ、したがってすべてのフィールドを一度に見る必要はありません。
これが役立つことを願っています。
g.drawrectangleを呼び出す代わりに(ペン、100,100、100、200)。 、グラフィックオブジェクトによって描画されるオブジェクトとして長方形を維持します。この長方形オブジェクトを新しいもので更新するたびに、グラフィックオブジェクトは新しいオブジェクトを描画します。
更新は古い長方形をクリアし、グラフィックスは新しいものを描きます。
SMTPをIISにインストールすると、ドロップボックスが自動的に作成されます。
Open IISマネージャ - >デフォルトのSMTP仮想サーバ - >ドメイン - > mossserver.domain.com - >プロパティ
ドロップディレクトリの場所を確認すると、デフォルトの場所は "C:\ inetpub \ mailro root \ drop"、ここで、SharePoint Timer Serviceがそれを選択するまですべての電子メールが保存されます。SharePoint Timer Serviceは5分ごとにこのフォルダをチェックします(デフォルト)。メールを拾うタイマージョブは5分ごとに動作します。そのため、長いのためにそこに座っている電子メールが表示されないでください。
「Microsoft SharePoint Foundationの着信電子メール」サービスはドロップフォルダからの電子メールを選択し、EメールのX-Sender
およびX-Receiver
ヘッダーを使用して必要な場所に送信し、SMTPサービスを使用すると自動的に追加されます。Windows。
使っていると思います DrawReversibleFrame 正しい解決策です。最初の呼び出しでは、長方形を描き、2回目の呼び出しはそれをundRawします。
サンプルコードは次のとおりです。ボタン上のクリックにより、長方形が表示されます/消費されます。
Rectangle pRect = new Rectangle(10, 10, 20, 20);
private void rect_Click(object sender, EventArgs e)
{
ControlPaint.DrawReversibleFrame(pRect, this.BackColor, FrameStyle.Thick);
}