找回密码
 立即注册

QQ登录

只需一步,快速开始

zheng_hq

银牌会员

151

主题

391

帖子

2227

积分

银牌会员

积分
2227

活字格认证

zheng_hq
银牌会员   /  发表于:2012-9-19 14:52  /   查看:10429  /  回复:10





上图是在vb.net下绘制的MarginLine

我想在c#  使用类的方法在MarginLine绘制这样的效果,该如何实现呢?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

10 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2012-9-19 15:46:00
沙发
回复 1楼zheng_hq的帖子

你好,链接中为 C# 和 VB.NET 代码转换工具,可以试一试:http://www.developerfusion.com/tools/convert/vb-to-csharp/
回复 使用道具 举报
zheng_hq
银牌会员   /  发表于:2012-9-19 16:08:00
板凳
我试过了的,不行,才发的帖子

  1. Printing.Margins _margin;
复制代码


Pringting 下面有红色波浪线

提示:未能找到类型或名称命名空间
回复 使用道具 举报
zheng_hq
银牌会员   /  发表于:2012-9-19 16:10:00
地板
using system.drawing.xxx   我都尝试了,不行的
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2012-9-19 16:23:00
5#
回复 4楼zheng_hq的帖子

建议搜索些,C# 和 VB.NET 关键字对照表,用于转换参考:
第一个 Demo 转换结果如下:

  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Windows.Forms;
  9. namespace _6093
  10. {
  11.     public partial class Form1 : Form
  12.     {
  13.         SolidBrush _bdrBrush ;
  14.         System.Drawing.Printing.Margins _margin;
  15.         Rectangle _rc;
  16.         Graphics _g;

  17.         public Form1()
  18.         {
  19.             InitializeComponent();
  20.         }

  21.         private void Form1_Load(object sender, EventArgs e)
  22.         {
  23.             _bdrBrush = new SolidBrush(Color.Black);
  24.             _margin = new System.Drawing.Printing.Margins(0, 1, 0, 0);
  25.             c1FlexGrid1.DrawMode = C1.Win.C1FlexGrid.DrawModeEnum.OwnerDraw;
  26.         }

  27.         private void c1FlexGrid1_OwnerDrawCell(object sender, C1.Win.C1FlexGrid.OwnerDrawCellEventArgs e)
  28.         {
  29.             _g = e.Graphics;
  30.             if (e.Col==1)
  31.             {

  32.             }
  33.         }
  34. }
复制代码
回复 使用道具 举报
zheng_hq
银牌会员   /  发表于:2012-9-19 16:45:00
6#
哦,那如何用上面的方法

在第3、4行绘制一条直线呢?
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2012-9-19 18:16:00
7#
回复 6楼zheng_hq的帖子

意思是不是 5# 中其余 VB 代码怎么转译?

  1. private void c1FlexGrid1_OwnerDrawCell(object sender, C1.Win.C1FlexGrid.OwnerDrawCellEventArgs e)
  2.         {
  3.             e.DrawCell();
  4.             _g = e.Graphics;
  5.             if (e.Col == 1)
  6.             {
  7.                 _rc = e.Bounds;
  8.                 _rc.X = _rc.Right - _margin.Right;
  9.                 _rc.Width = _margin.Right;
  10.                 _g.FillRectangle(_bdrBrush, _rc);
  11.             }
  12.             if (e.Col == 2)
  13.             {
  14.                 _rc = e.Bounds;
  15.                 _rc.X = _rc.Right - _margin.Right;
  16.                 _rc.Width = _margin.Right;
  17.                 _g.FillRectangle(_bdrBrush, _rc);
  18.             }
  19.         }
复制代码
回复 使用道具 举报
zheng_hq
银牌会员   /  发表于:2012-9-20 13:44:00
8#
如何用上面的方法绘制一条横线呢?

  1. if (e.Row == 2)
  2. {
  3.     //
  4. }
复制代码
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2012-9-20 18:36:00
9#
回复 8楼zheng_hq的帖子

其实这段代码的本质就是在 FlexGrid 上画长方形,可以通过设置 _rc 的坐标实现。
回复 使用道具 举报
zheng_hq
银牌会员   /  发表于:2012-9-21 08:14:00
10#
回复 8楼zheng_hq的帖子

其实这段代码的本质就是在 FlexGrid 上画长方形,可以通过设置 _rc 的坐标实现。
iceman 发表于 2012-9-20 18:36:00



哦,问题解决了,谢谢
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部