C#...WINFORM中加入word,字体样式颜色可以显示

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#...WINFORM中加入word,字体样式颜色可以显示相关的知识,希望对你有一定的参考价值。

我想做一个项目,指定位置的word文档,打开并按原来样式显示,给个思路,给个帖子,给个blog都行,谢谢

参考技术A private void Form1_Load(object sender, EventArgs e)

myComboBox.Items.Clear();

Array allColors = Enum.GetValues(typeof(KnownColor)); //获得系统颜色集合
foreach (KnownColor var in allColors)

myComboBox.Items.Add(var.ToString()); //加载该选项框的子项

myComboBox.SelectedIndex = 1;


private void myComboBox_DrawItem(object sender, DrawItemEventArgs e)

//判断是否需要重绘
if (e.Index >= 0)

string colorName = myComboBox.Items[e.Index].ToString(); //子项的颜色名
SolidBrush brush = new SolidBrush(Color.FromName(colorName)); //画笔
Font font = new Font("宋体", 9); //字体样式
Brush brushs = Brushes.Black;

Rectangle rect = e.Bounds; //获得需要重绘的区域
rect.Inflate(-2, -2); //缩放一定大小

Rectangle rectColor = new Rectangle(rect.Location,new Size(20,rect.Height));
e.Graphics.FillRectangle(brush, rectColor); // 填充颜色
e.Graphics.DrawRectangle(Pens.Black, rectColor); // 绘制边框

//绘制文字
e.Graphics.DrawString(colorName, font, brushs, (rect.X+22), rect.Y);




同时还需要设置该控件的DrawMode和DropDownStyle属性,类似的控件Listbox也可按同样方法实现颜色选择,DrawMode属性为NORMAL时,有选中效果,但自己绘制的选项则不会出现选中效果,若想实现,可在DrawItem中加入一个状态判定,如:

//绘制选中效果
if ((e.State & DrawItemState.Selected) == DrawItemState.Selected)

SolidBrush brushItem = new SolidBrush(SystemColors.MenuHighlight); //画笔
Rectangle rectItem = e.Bounds;
e.Graphics.FillRectangle(brushItem, rectItem);

else

SolidBrush brushItem = new SolidBrush(SystemColors.Window); //画笔
Rectangle rectItem = e.Bounds;
e.Graphics.FillRectangle(brushItem, rectItem);

参考技术B 看到别人做过 你找找有没有控件能实现 如果没有的话 我劝你还是放弃这个想法
找到个不算完美的方法
http://bbs.bccn.net/thread-292383-1-1.html
参考技术C 百度下rtf吧,
原理是转成rft格式再打开,richtextbox控件本回答被提问者采纳

在C#的WinForm中,怎么在datagridview中插入复选框?

如果是设计的时候设置,添加列的时候ColumnType属性选择DataGridViewCheckBoxColumn
如果是代码添加列,如下:
DataGridViewColumn myCol = new DataGridViewCheckBoxColumn();
myGrid.Columns.Add(myCol);
参考技术A 同意一楼,若遇“System.FormatException:单元格的Formatted值的类型错误.要替换此默认对话框,请处理DataError事件.”异常,参考http://blog.csdn.net/rockythd/article/details/6096867 参考技术B 你可以遍历出所有的复选框,然后截取以0305开头的,如果是以这开头,然后获得这个复选框,Enabled设为不可用.ok?
参考技术C <asp:TemplateColumn HeaderStyle-CssClass="Lock_Header">
<HeaderTemplate>
<asp:CheckBox ID="cbIsSelectedAll" runat="server" onclick="CheckAllItems(this, 'dgdBatch', 'cbIsSelected');" Checked ="true" Enabled ="false" />
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox ID="cbIsSelected" runat="server" onclick="CheckItemGroup(this, 'dgdBatch', 'cbIsSelected', 'cbIsSelectedAll');" Checked ="true" Enabled ="false" />
</ItemTemplate>
<HeaderStyle Width="20px" />
</asp:TemplateColumn>
参考技术D <asp:TemplateColumn HeaderStyle-CssClass="Lock_Header">
<ItemTemplate>
<asp:CheckBox ID="cbIsSelected" runat="server" onclick="CheckItemGroup(this, 'dgdBatch', 'cbIsSelected', 'cbIsSelectedAll');" Checked ="true" Enabled ="false" />
</ItemTemplate>
</asp:TemplateColumn>

以上是关于C#...WINFORM中加入word,字体样式颜色可以显示的主要内容,如果未能解决你的问题,请参考以下文章

在C#的WinForm中,怎么在datagridview中插入复选框?

c#winform 的所有控件缩写是啥

html转pdf时字体的加粗怎么设置

WINFORM中加入WPF控件并绑定数据源实现跨线程自动更新

如何用css样式设计整个网站字体

Android 去掉Button阴影效果