是否可以更改ToolStripSeparator控件的BackColor? 在設計器中有一個BackColor屬性,但它似乎沒有被使用 - 顏色始終是白色的。更改ToolStripSeparator控件的BackColor
3
A
回答
3
默認toolstrip
渲染器會忽略BackColor屬性並使用硬編碼的顏色。
你可以參考下面的鏈接來使用你自己的渲染器以你想要的方式繪製分隔符。
http://social.msdn.microsoft.com/forums/en-US/winforms/thread/6cceab5b-7e06-40cf-82da-56cdcc57eb5d
0
http://www.c-sharpcorner.com/uploadfile/mahesh/toolstrip-in-C-Sharp/
請參考上面的鏈接。我希望能幫到你!
1
我看到問題在2年前被問到,但我仍然無法在網絡上找到一個簡單明瞭的解決方案。所以...
我剛剛面對這個問題,發現解決它非常簡單。
有同樣的情況:
解決方案:
創建繼承了ToolStripSeparator
類的類和方法添加到Paint
EventHandler
繪製分隔符:
public class ExtendedToolStripSeparator : ToolStripSeparator
{
public ExtendedToolStripSeparator()
{
this.Paint += ExtendedToolStripSeparator_Paint;
}
private void ExtendedToolStripSeparator_Paint(object sender, PaintEventArgs e)
{
// Get the separator's width and height.
ToolStripSeparator toolStripSeparator = (ToolStripSeparator)sender;
int width = toolStripSeparator.Width;
int height = toolStripSeparator.Height;
// Choose the colors for drawing.
// I've used Color.White as the foreColor.
Color foreColor = Color.FromName(Utilities.Constants.ControlsRelatedConstants.standardForeColorName);
// Color.Teal as the backColor.
Color backColor = Color.FromName(Utilities.Constants.ControlsRelatedConstants.standardBackColorName);
// Fill the background.
e.Graphics.FillRectangle(new SolidBrush(backColor), 0, 0, width, height);
// Draw the line.
e.Graphics.DrawLine(new Pen(foreColor), 4, height/2, width - 4, height/2);
}
}
然後添加分隔符:
ToolStripSeparator toolStripSeparator = new ExtendedToolStripSeparator();
this.DropDownItems.Add(newGameToolStripMenuItem);
this.DropDownItems.Add(addPlayerToolStripMenuItem);
this.DropDownItems.Add(viewResultsToolStripMenuItem);
// Add the separator here.
this.DropDownItems.Add(toolStripSeparator);
this.DropDownItems.Add(exitToolStripMenuItem);
結果:
1
我只是指出我的分隔符Paint事件這一習俗PROC:
private void mnuToolStripSeparator_Custom_Paint (Object sender, PaintEventArgs e)
{
ToolStripSeparator sep = (ToolStripSeparator)sender;
e.Graphics.FillRectangle(new SolidBrush(CUSTOM_COLOR_BACKGROUND), 0, 0, sep.Width, sep.Height);
e.Graphics.DrawLine(new Pen(CUSTOM_COLOR_FOREGROUND), 30, sep.Height/2, sep.Width - 4, sep.Height/2);
}
凡CUSTOM_COLOR_FOREGROUND是固體/命名爲Color,例如Color.White。
相關問題
- 1. 更改DataGridViewRow的BackColor
- 2. 更改發件人TextBox的backColor
- 3. 如何更改Tab的BackColor?
- 4. 如何防止控件的BackColor被更改?
- 5. 在.NET C#中:繼承控件Texbox,並更改默認的BackColor
- 6. 更改文本框backcolor有條件地
- 7. 在datagridview中更改行backcolor
- 8. 通過FindControl更改表backcolor
- 9. 更改按鈕BackColor屬性
- 10. 運行時更改TextBox BackColor
- 11. 我需要更改我的DataGridView的BackColor
- 12. 更改中繼器按鈕onClick的backColor
- 13. 更改無BackBacklike AJAX的CheckBox BackColor
- 14. 從Integer值更改控制backcolor/forecolor屬性?
- 15. WPF - 在MouseLeftButtonDown上更改網格backcolor
- 16. 更改標籤BackColor爲默認
- 17. 更改winform工具提示backcolor
- 18. C#通過長度更改txtBox BackColor
- 19. 更改工具欄按鈕backcolor
- 20. 切換控制backcolor快速
- 21. 如何更改禁用數字更新的forecolor/backcolor?
- 22. 按鈕BackColor不會改變
- 23. 更改Galleriffic控件
- 24. 更改TextBox控件
- 25. 更改HTML控件
- 26. 更改我的自定義UserControl的BackColor - 幫助!
- 27. 更改控件的邊框
- 28. C#如何使用isBalloon = true更改ToolTip的BackColor?
- 29. 如何更改asp.net DropDownList中文本框區域的BackColor?
- 30. 更改圖片箱backcolor的x時間量
我看到這篇文章,但我正在尋找另一種解決方案,我不認爲這是最好的解決方案 – Siwar 2013-04-10 13:07:32
我也研究過它,但沒有發現其他可供選擇的替代方案,這是更好的替代方案。 – Freelancer 2013-04-10 13:08:39
我把這個代碼放在Menu.designer.cs中this.fileToolStripMenuItem.BackColor = System.Drawing.SystemColors.ButtonFace;但它不起作用 – Siwar 2013-04-10 13:09:11