Files
lserp_cs_6.0/插件库/cs2/Form1.cs
T
2026-07-02 10:11:39 +00:00

225 lines
7.7 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using DevExpress.XtraTreeList;
using DevExpress.XtraTreeList.Columns;
using DevExpress.XtraTreeList.ViewInfo;
using Lskj.Control.Model;
using Lskj.Core;
using Lskj.Model;
using Lskj.PubModuleDetail;
namespace cs2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
//DBConfig.Instance.ServerName = "221.10.118.38,9993";
//DBConfig.Instance.DataBase = "lserp_cy";
ERPInfo.Instance.UserId ="1";
DBConfig.Instance.CreateConnection();
}
private void Form1_Load(object sender, EventArgs e)
{
try
{
richTextBox.ReadOnly = true; // 设置为只读模式
// 设置文本内容和超链接部分
string text = "点击https://b.vip166.com/打开示例网站,并查看更多信息。";
string url = "https://b.vip166.com/";
richTextBox.Text = text;
// 在文本中插入超链接部分
int linkStart = text.IndexOf("https://b.vip166.com/"); // 查找超链接文本的位置
int linkLength = "https://b.vip166.com/".Length;
// 选择文本并将其设置为超链接
richTextBox.Select(linkStart, linkLength);
richTextBox.SelectionColor = System.Drawing.Color.Blue;
richTextBox.SelectionFont = new System.Drawing.Font(richTextBox.Font, System.Drawing.FontStyle.Underline);
// 捕获点击事件,打开网页
richTextBox.LinkClicked += RichTextBox_LinkClicked;
treeList1.ColumnPanelRowHeight = 50;
treeList1.Bands.AddBand("测试");
//TreeListBand treeListBand = new TreeListBand();
//treeListBand.Caption = "测试2";
// 添加列
for (int i = 1; i < 4; i++)
{
TreeListColumn gridColumn = new TreeListColumn();
gridColumn.FieldName = "" + i;
gridColumn.Name = "" + i;
gridColumn.Caption = "" + i;
gridColumn.Width = 50;
gridColumn.VisibleIndex = i;
gridColumn.Visible = true;
gridColumn.OptionsFilter.FilterPopupMode = FilterPopupMode.CheckedList;
gridColumn.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
// treeListBand.Columns.Add(gridColumn);
treeList1.Bands[0].Columns.Add(gridColumn);
//this.treeList1.Columns.AddRange(new TreeListColumn[] { gridColumn });
}
//this.treeList1.Bands.Add(treeListBand);
//treeList1.Columns.AddField("Column1").Caption = "Column 1";
//treeList1.Columns.AddField("Column2").Caption = "Column 2";
//treeList1.Columns.AddField("Column3").Caption = "Column 3";
// 绑定数据
treeList1.AppendNode(new object[] { "Data1", "Data2", "Data3" }, null);
treeList1.AppendNode(new object[] { "Data4", "Data5", "Data6" }, null);
// 订阅 CustomDrawColumnHeader 事件
//treeList1.CustomDrawColumnHeader += TreeList1_CustomDrawColumnHeader;
}
catch (Exception ex)
{
}
}
private void RichTextBox_LinkClicked(object sender, LinkClickedEventArgs e)
{
if (e.LinkText == "https://b.vip166.com/")
{
System.Diagnostics.Process.Start("https://b.vip166.com/");
}
}
private void TreeList1_CustomDrawColumnHeader(object sender, CustomDrawColumnHeaderEventArgs e)
{
// 获取所有列
TreeListColumn[] columns = treeList1.Columns.ToArray();
// 遍历列,检查是否需要合并
for (int i = 0; i < columns.Length; i++)
{
// 获取当前列的表头名称
string currentCaption = columns[i].Caption;
// 查找相邻列是否有相同名称
int mergeCount = 1;
for (int j = i + 1; j < columns.Length; j++)
{
if (columns[j].Caption == currentCaption)
mergeCount++;
else
break;
}
// 如果需要合并
if (mergeCount > 1)
{
// 计算合并区域的宽度
int mergedWidth = 0;
for (int k = i; k < i + mergeCount; k++)
{
mergedWidth += columns[k].Width;
}
// 获取当前列的绘制区域
Rectangle mergedBounds = new Rectangle(
GetColumnXPosition(columns[i]),
e.Bounds.Y,
mergedWidth,
e.Bounds.Height
);
// 绘制合并后的表头
e.Graphics.FillRectangle(Brushes.LightGray, mergedBounds);
e.Graphics.DrawString(currentCaption, e.Appearance.Font, Brushes.Black, mergedBounds.X + 5, mergedBounds.Y + 5);
// 跳过已合并的列
i += mergeCount - 1;
}
else
{
// 不需要合并,正常绘制
e.Graphics.FillRectangle(Brushes.LightGray, e.Bounds);
e.Graphics.DrawString(currentCaption, e.Appearance.Font, Brushes.Black, e.Bounds.X + 5, e.Bounds.Y + 5);
}
// 阻止默认绘制
e.Handled = true;
}
//// 设置多表头
//if (e.Column != null)
//{
// // 绘制主表头
// e.Graphics.FillRectangle(Brushes.LightGray, e.Bounds);
// e.Graphics.DrawString("Main Header", e.Appearance.Font, Brushes.Black, e.Bounds.X + 5, e.Bounds.Y + 5);
// // 绘制子表头
// Rectangle subHeaderBounds = new Rectangle(e.Bounds.X, e.Bounds.Y + e.Bounds.Height / 2, e.Bounds.Width, e.Bounds.Height / 2);
// e.Graphics.FillRectangle(Brushes.LightBlue, subHeaderBounds);
// e.Graphics.DrawString(e.Column.Caption, e.Appearance.Font, Brushes.Black, subHeaderBounds.X + 5, subHeaderBounds.Y + 5);
// // 阻止默认绘制
// e.Handled = true;
//}
}
private int GetColumnXPosition(TreeListColumn column)
{
//// 获取 TreeList 的视图信息
//TreeListViewInfo viewInfo = treeList1.ViewInfo;
//// 遍历列的可视信息
//foreach (ColumnInfo columnInfo in viewInfo.ColumnsInfo)
//{
// if (columnInfo.Column == column)
// {
// // 返回列的 X 轴位置
// return columnInfo.Bounds.X;
// }
//}
// 如果未找到列,返回 -1
return -1;
}
private void button1_Click(object sender, EventArgs e)
{
//treeList1.ToExcelTreeList("单表");
treeList1.ToTreeExcel("单据");
}
}
}