我们有一个控件项目,其中包含许多应用程序中使用的控件.这些控件上有许多旧的和多个冗余属性,并且几乎没有一个属性具有指定的属性(例如DefaultValue()特别是).
作为清理它们的努力的一部分,我们已经为属性添加了属性,并且正在寻找删除多余的属性.
我们想要做的是从winforms设计器(xxxxxx.designer.cs和xxxxxx.designer.vb文件)中清除生成的代码.一些属性是直接删除,我们可以使用Grep和Sed来删除有问题的行,但我们正在寻找一种方法来使Visual Studio(或其他东西)重新生成文件.
由于我们有100个表单,因此手动打开每个表单并对其进行修改是不可行的.
有谁知道这样做的方法?
编辑:
澄清一下,我的意思是不是立即删除属性,而是将DesignerSerializationVisibity()属性应用于它们以告诉设计者不要写它们.然后,一旦我们更新了所有设计器文件,我们就可以删除属性.
也可以看看:
我想编写一个WinMerge插件来将SQLite数据库转换为文本,因此我可以使用WinMerge来比较数据库.
我已用C#编写代码来进行转换,但我似乎无法将其显示为WinMerge插件.但是我对编写COM可见的.NET对象并不是很熟悉.
我想我不能放入正确的COM属性(我只是把ComVisible(true)放在类上).但是,我认为VB.Net应该为你做所有的事情,所以我在VB.Net中重写了类,使用Project/Add New/COM类.但是,它仍然不会作为加载的插件出现在WinMerge中.
无奈之下,我尝试使用DLL导出查看器查看VB DLL,但它没有显示任何导出的函数.我显然做错了什么.
这是完整的代码:
<ComClass(WinMergeScript.ClassId, WinMergeScript.InterfaceId, WinMergeScript.EventsId)> _
Public Class WinMergeScript
#Region "COM GUIDs"
' These GUIDs provide the COM identity for this class
' and its COM interfaces. If you change them, existing
' clients will no longer be able to access the class.
Public Const ClassId As String = "9b9bbe1c-7b20-4826-b12e-9062fc4549a0"
Public Const InterfaceId As String = "b0f2aa59-b9d0-454a-8148-9715c83dbb71"
Public Const EventsId As String = "8f4f9c82-6ba3-4c22-8814-995ca1050de6"
#End Region
Dim _connection As SQLite.SQLiteConnection
Dim _output As IO.TextWriter
Dim …Run Code Online (Sandbox Code Playgroud) 我试图将一个图形对象的内容复制到另一个图形对象,但我唯一能够找到的是基于使用GDI32.DLL,我宁愿避免使用,如果可能的话.
有谁知道如何使用托管代码这是否可行?我不介意答案是在C#或VB.Net中.
这是我目前拥有的:
Private Sub CopyGraphics()
Dim srcPic As Graphics = pnl.CreateGraphics
Dim srcBmp As New Bitmap(pnl.Width, pnl.Height, srcPic)
Dim srcMem As Graphics = Graphics.FromImage(srcBmp)
Dim HDC1 As IntPtr = srcPic.GetHdc
Dim HDC2 As IntPtr = srcMem.GetHdc
BitBlt(HDC2, 0, 0, pnl.Width, pnl.Height, HDC1, 0, 0, 13369376)
pnlDraw.BackgroundImage = srcBmp
'Clean Up code omitted...
End Sub
Run Code Online (Sandbox Code Playgroud) 我正在使用一个函数来调用一段文本在一个区域内呈现.该功能的基本工作是:
Dim measureSize as Size
Do
myFont = new Font(myFont.Name, myFont.Size - 1, FontStyle.Regular, GraphicsUnit.Document)
'Initial font size is set insanely high for the moment, during testing.
'Low initial font size is not the problem.
measureSize = g.MeasureString(myString, myFont)
Loop until (measuredSize.width < desiredSize.width AND measuredSize.height < desiredSize.height)
Run Code Online (Sandbox Code Playgroud)
这个问题是MeasureString在它绘制的字符串周围添加了很多空格,而最终的字体渲染得太小了.
我确定我记得一个可以摆弄的参数,以便从MeasureString方法中删除所有填充,但我的搜索目前还没有出现任何问题.
有没有人知道如何使用MeasureString来测量字符串的EXACT大小而没有任何边界?
我试图DrawString()在面板(panel1)上使用方法绘制一个字符串.我想在form(Form1)加载时发生这种情况.但这不会发生.但是如果我在click事件处理程序中使用相同的代码(如下所示),则会绘制字符串panel1.我在哪里做错了?
private void Form1_Load(object sender, EventArgs e)
{
/*string rand = getRandomString();
textBox1.Text = rand;*/
string rand = "Hello";
SolidBrush sbr = new SolidBrush(Color.Black);
Graphics g = panel1.CreateGraphics();
FontFamily fam = new FontFamily("Magneto");
Font font = new System.Drawing.Font(fam, 24, FontStyle.Bold);
g.DrawString(rand, font, sbr, new Point(20, 20));
}
Run Code Online (Sandbox Code Playgroud) 有人可以解释我为什么得到:
"使用未分配的局部变量number_of_column":if(i <number_of_column -1)
什么是处理这个问题的最佳方法?
static void Main(string[] args)
{
int number_of_column;
if (Directory.Exists(path))
{
var file = dir.GetFiles().OrderByDescending(f => f.LastWriteTime).First();
string file1 = file.ToString();
Console.WriteLine(file1);
StreamReader sr = new StreamReader(path + "\\" + file1);
string line;
while ((line = sr.ReadLine()) != null)
{
if (start == true)
{
string[] line1 = line.Split(',');
number_of_column = line1.Count();
i = 0;
foreach (string s in line1)
{
if ((s != "0") || (!string.IsNullOrEmpty(s)))
{
col[i] = "checked";
}
i++;
}
}
else …Run Code Online (Sandbox Code Playgroud) 我有一个带有visual studio 2010和多个构建目标的构建机器.我使用的所有其他目标按预期工作,由于某种原因,.net 4.6.1版本14的新版本不起作用.
当我从命令行执行构建时,我收到以下错误:
C:\ Program Files(x86)\ MSBuild\14.0\bin\Microsoft.Common.CurrentVersion.targets(1097,5):警告MSB3644:找不到框架".NETFramework,Version = v4.6.1"的引用程序集.要解决此问题,请为此框架版本安装SDK或Targeting Pack,或者将应用程序重新定位到已安装SDK或Targeting Pack的框架版本.请注意,程序集将从全局程序集缓存(GAC)中解析,并将用于代替引用程序集.因此,您的程序集可能无法正确定位到您想要的框架.
有人可以向我解释如何解决它吗?
如何使用流编写器使文本变粗,这是我的代码:
string path = Application.StartupPath + "\\WZ.PNR";
StreamWriter writer = new StreamWriter(path);
textPrint.ToText(writer, Width, FSection, FAlign, DSection, DAlign, Format);
writer.WriteLine();
writer.Close();
Run Code Online (Sandbox Code Playgroud)
我正在写一些文字,我需要做一些文字BOLD,怎么做?
谢谢