我有一个绑定到DataTable的DataGridView。
DataTable是所有数值。
要求DataGridView中的每n行中都包含文本,而不是数字值(以便为用户在视觉上分隔各个部分)。
绑定后,我很乐意将此文本数据放入DataTable或DataGridView中,但是我看不到任何一种将文本数据放入其中的方法,因为这两种列格式都需要数字数据-我得到了“都将一个字符串放在一个十进制“错误中。
有什么想法如何更改DataTable或DataGridView中特定行或单元格的格式?
我需要更改 Excel 工作表中某些单元格的字体样式(字体类型)。Excel工作表由Microsoft.Office.Interop.Excel生成
我想将 B3 到 B100 范围更改为 Arial 字体类型。这是我的代码
Microsoft.Office.Interop.Excel._Application app = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel._Workbook workbook = app.Workbooks.Add(Type.Missing);
Microsoft.Office.Interop.Excel._Worksheet worksheet = null;
app.Visible = true;
worksheet = workbook.Sheets["Sheet1"];
worksheet = workbook.ActiveSheet;
worksheet.Name = "Exported from gridview";
worksheet.get_Range("B3", "B100").Cells.Font.FontStyle = "Arial";
for (int i = 1; i < records_datagridview.Columns.Count + 1; i++)
{
worksheet.Cells[1, i] = records_datagridview.Columns[i - 1].HeaderText;
}
for (int i = 0; i < records_datagridview.Rows.Count; i++)
{
for (int j = 0; j < records_datagridview.Columns.Count; j++)
{ …
Run Code Online (Sandbox Code Playgroud) 我正在从指定的文本生成图像,但我面临一个问题:我无法删除生成的图像内绘制文本的顶部和底部填充。
我尝试在使用时更改字符串格式Graphics.DrawString()
,但我只设法删除了左右填充。
private void button1_Click(object sender, EventArgs e)
{
Font font = new Font("Arial", 52, FontStyle.Regular);
Image i = GetTextAsImage(textBox1.Text,400, font, Color.Black, Color.LightGray);
i.Save("myImage.jpeg", ImageFormat.Jpeg);
}
private Image GetTextAsImage(String text, int widthInPixel, Font textFont, Color textColor, Color backColor)
{
//first, create a dummy bitmap just to get a graphics object
Image img = new Bitmap(1, 1);
Graphics drawing = Graphics.FromImage(img);
//measure the string to see how big the image needs to be
SizeF textSize = drawing.MeasureString(text, textFont);
//free …
Run Code Online (Sandbox Code Playgroud) 我正在尝试更改 ListView 中选择栏的默认(蓝色)颜色。
我拒绝使用 ObjectListView 因为我必须更改所有代码。
我搜索过这个主题,并在这里找到了一些答案:
更改 ListView 的背景选择颜色?
但它指向 ObjectListView。
当我之前使用 ListBox 时,这可以根据我的喜好设置选择栏颜色:
OwnerDrawFixed
在“属性”下 将“绘制模式”设置为ListBox1_DrawItem
Events 下 private void ListBox1_DrawItem(object sender, DrawItemEventArgs e)
{
if (e.Index < 0) return;
//if the item state is selected them change the back color
if ((e.State & DrawItemState.Selected) == DrawItemState.Selected)
e = new DrawItemEventArgs(e.Graphics,
e.Font,
e.Bounds,
e.Index,
e.State ^ DrawItemState.Selected,
e.ForeColor,
Color.FromArgb(43, 144, 188));//Choose the color
// Draw the background of the ListBox control for each item. …
Run Code Online (Sandbox Code Playgroud) 我正在尝试调整 RGB 值,以基本上使图像处理器项目中的图片变暗或变亮。如果在一个 TrackBar 控件上同时包含变暗和变亮功能,并且当滑块在中间设置为 0 时,图像会呈现中性且未更改的图像,这将是一件好事。
然而,我目前仍在尝试弄清楚如何在一个 TrackBar 上只执行一项功能,例如变暗。
在我的项目中放置 TrackBar 控件 ( Min 0, Max 10
) 后,我使用该trackbar_scroll
事件来检测 TrackBar 何时滚动。
我还对其进行了编码,通过从图像每个像素的 RGB 中减去某个字节值来使图像变暗。
当您向右滑动滚动条时,滚动条成功地使图像变暗,但是当您将轨迹栏向左滑动回到其原始位置时,我也想取消它的变暗。
private void trbBrightness_Scroll(object sender, EventArgs e)
{
if (bitmapImage == null) return;
Byte Red, Green, Blue;
int iWidth = 320;
int iHeight = 240;
for (int i = 0; i < iWidth; i++)
{
for (int j = 0; j < iHeight; j++)
{
Color pixel = ImageArray[i, j];
Red = pixel.R; …
Run Code Online (Sandbox Code Playgroud) 我希望能够在 Windows 窗体或 WPF 窗口的标题栏中显示下标文本。这样做的原因是简单的。我们项目组写了一个分子编辑器:
我们不只是显示其名称“ACME”,而是希望显示如下内容:
ACME - 编辑 C 6 H 12 Cl
文本带有下标(也可能带有上标)的位置以及控件是否显示在 Windows 窗体或 WPF 主机中。
我有一个名为的属性,它是通过 Visual Studio 中的属性设置窗口 A
设置的值(项目 \xe2\x86\x92 属性 \xe2\x86\x92 设置)。AAA
A
我可以使用此循环获取该属性的原始值。
\n如果我更改该值,也就是说NewValue
,我可以使用以下代码获取新值:
Properties.Settings.Default.A\n
Run Code Online (Sandbox Code Playgroud)\n\n但是,在循环内,我不知道如何在不使用语法的情况下获取当前属性值:
\n\nProperties.Settings.Default.VariableName\n
Run Code Online (Sandbox Code Playgroud)\n\n例如:
\n\nProperties.Settings.Default.A= "NewValue";\nProperties.Settings.Default.Save();\nforeach (SettingsProperty _currentProperty in Properties.Settings.Default.Properties)\n{\n Console.WriteLine(_currentProperty.Name + "," + _currentProperty.DefaultValue.ToString());\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n上面的循环显示了属性的原始值(旧的默认值是AAA
)。
我已检查该user.config
文件并确保它正在显示NewValue
。
我假设必须有某种方法使用我不知道的属性或方法来引用当前值(也许我应该迭代另一个集合?)。
\n\n问题是,如何在foreach
上面的循环中显示这个新值?
当DataGridView 的 已经设置为DataGridViewColumnHeaderCell
对象并且还保留之前的 HeaderCell 的文本(设置为 DataTable 相应列的名称)时,何时用自定义替换a HeaderCell
(此处:)?CustomDataGridViewColumnHeaderCell
DataSource
DataTable
我有一个自定义标头类DataGridView
:
public class CustomDataGridViewColumnHeaderCell : DataGridViewColumnHeaderCell
{
// adds a button to the header
}
Run Code Online (Sandbox Code Playgroud)
ADataTable
被设置为DataSource
,列将自动创建。如何用自定义标题单元格(上述实例)替换默认标题单元格?
更多详情
要解决的问题是,DataGridView
需要在其标题单元格中嵌入可点击的按钮,即上面屏幕截图中箭头所指的位置。为此,有一类CustomDataGridViewColumnHeaderCell
. 为了显示 中的数据DataGridView
,DataTable
将 a 指定为其数据源。例如:
myDataGridView.DataSource = myDataTable;
Run Code Online (Sandbox Code Playgroud)
执行此操作后,DataGridView
将具有与 中的列相对应的列DataTable
。我从默认标题类派生了一个类,以便按钮出现在列标题内。
我有一个 8bpp 索引位图,带有自定义 256 色调色板,其中调色板中的特定颜色 (Color.Pink
和Color.Green
) 表示透明度。
我可以MakeTransparent(color)
在位图上使用该方法(每种颜色两次),但它会将其转换为 32bpp。所以我使用的是:
using var imageAttr = new ImageAttributes();
imageAttr.SetColorKey(pink, pink, ColorAdjustType.Default);
Run Code Online (Sandbox Code Playgroud)
进而
g.DrawImage(bitmap, destRect, X, Y, Width, Height, GraphicsUnit.Pixel, imageAttr);
Run Code Online (Sandbox Code Playgroud)
它按应有的方式绘制位图,但仅对Color.Pink
透明颜色进行更改。我怎样才能对第二种颜色(Color.Green
)也执行此操作?
我找到了这个答案,建议使用带有以下代码的“ core audio.dll” API:
private function getmute() as boolean
Dim devenum As New MMDeviceEnumerator
Dim device As MMDevice = devenum.GetDefaultAudioEndpoint(EDataFlow.eRender, ERole.eMultimedia)
If device.AudioEndpointVolume.Mute = True Then
Return True
Else
Return False
End If
End Function
Run Code Online (Sandbox Code Playgroud)
我尝试了该代码,但无法正常工作,无法对其他问题发表评论。
当我尝试上述代码时,以下行将引发异常:
If device.AudioEndpointVolume.Mute = True Then
Run Code Online (Sandbox Code Playgroud)
这是异常消息:
AudioEndpointVolume不是设备的成员。
我已经输入了CoreAudioAPI
,还有什么可能是错的?
我在寻找一个VB.NET
或一个C#
解决方案。
c# ×10
winforms ×8
.net ×6
datagridview ×2
gdi+ ×2
bitmap ×1
colormatrix ×1
font-style ×1
graphics ×1
listview ×1
selection ×1
subscript ×1
superscript ×1
transparency ×1
vb.net ×1
winapi ×1
wpf ×1