|
hey guys..i want to change wordS' styles in a single cell of my datagridview
for example in a cell i have "AsdAsd.CvbCvb"..i want it to make as AsdAsd CvbCvb..to do that i declared two cellstyle
DataGridViewCellStyle mystyle1 = new DataGridViewCellStyle();
DataGridViewCellStyle mystyle2 = new DataGridViewCellStyle();
mystyle1.Font = new Font(dataGridView1.Font, FontStyle.Regular);
mystyle2.Font = new Font(dataGridView1.Font, FontStyle.Italic);
and to get the words in my cells i made this
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
for (int j = 1; j < dataGridView1.Columns.Count; j++)
{
string split = dataGridView1.Rows[i].Cells[j].Value.ToString();
string[] split2 = split.Split(new char[] { '.' });
foreach (string item in split2)
{
dataGridView1.Rows[i].Cells[j].Value = split2[0].ToString()+"/*/*" + split2[1].ToString();
}
}
}
but the point is that i dont know how to apply that styles to the words i got by splitting?
can anyone suggest me a way
vemedya.com
|
|
|
|
|
I think you can create two classes, one inheriting from DataGridViewColumn and the other one from DataGridViewCell, where you can use a RichTextBox control to show your data with the format you need. I have never done this, but I guess it is not too hard. Read the documentation about these two classes.
On the other hand, I would like to help you improve your code:
All of these lines (I have added some comments):
string split = dataGridView1.Rows[i].Cells[j].Value.ToString();
string[] split2 = split.Split(new char[] { '.' });
foreach (string item in split2)
{
dataGridView1.Rows[i].Cells[j].Value = split2[0].ToString()+"/*/*" + split2[1].ToString();
}
Give the same result as:
dataGridView1[j,i].Value = dataGridView1[j,i].Value.ToString().Replace(".", "/*/*");
But there is a difference: if you do not have a "." char, your code would also throw an exception.
|
|
|
|
|
As far as I know there is no way to do this with the 'standard' DataGridViewTextBoxColumn or DataGridViewTextBoxCell .
You can do it with the DataGridViewRichTextBoxColumn or Cell.
RichTextBox Cell in a DataGridView[^], might help.
Henry Minute
Do not read medical books! You could die of a misprint. - Mark Twain
Girl: (staring) "Why do you need an icy cucumber?"
“I want to report a fraud. The government is lying to us all.”
|
|
|
|
|
You can't use the styles because they apply to the ENTIRE cell, not just one little piece of content in it.
You have to write your own custom DataGridViewColumn implementation to pull this off. There are examples out there, you just have to Google for something like "Custom DataGridViewColumn" for them.
|
|
|
|
|
thanks for your asnwers guys..i will look at the examples and search more deeper.. because iam not that much professional yet to create a Custom DataGridView
vemedya.com
|
|
|
|
|
Any of you geniuses know how to develop an IME (Input Method Editor) in C# or know of a good article on how to do it? I have been "Googling" for some time now and not found anything useful; mostly links on how to enable the default MS ones for textboxes, etc. I am guessing a lot of PInvoke will be involved... any ideas? I haven't got a clue where to start... :-|
Thanks
|
|
|
|
|
What do you mean by "Input Method Editor"? The basics of an editor are largely the same: read input key strokes, format the data according to the rules of the editor, display in the relevant window, save to a file as and when necessary. Google has lots of samples.
Just say 'NO' to evaluated arguments for diadic functions! Ash
|
|
|
|
|
|
Yes, looks like a heck of a job to me. I have already created one in WinForms, but that is application specific. I want to add something to the system tray so a user can switch between normal input and IME and the text will be entered on whatever application they are using. Oh well... a lot of homework to do then... LOL.
Thanks anyway.
|
|
|
|
|
* edit to make a new post with this question *
|
|
|
|
|
Is there any method for detection of facila feature points in openCV??
|
|
|
|
|
|
Hi all,
I have a prob ,how we can read the registry keys in c# and display or write it into a text file
Please help
Thanks in advance
Rakesh
|
|
|
|
|
Do a search on the internet - you will get tons of answers.
See here[^] for the first link my search returned.
The funniest thing about this particular signature is that by the time you realise it doesn't say anything it's too late to stop reading it.
My latest tip/trick
|
|
|
|
|
Navigate the Given Link to open Google Search Engine for tons of Answer for your question
How to Read Registry Key[^]
Hope it Will works for you.
|
|
|
|
|
Include the required Header Files and then open ur required key
RegistryKey Key = Registry.CurrentUser;
Once Opening the key open ur sub key as needed..
RegistryKey SubKey = Key.OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders");
Read the values of sub keys into string (if it is a string else required data type)
string str = SubKey.GetValue("AppData").ToString();
Then ur almost done write this str value into file stream, so that ur task is acheived....
If u like my answer.... rate it Thanks
|
|
|
|
|
Pardhu2 wrote: Include the required Header Files
This is the C# forum.
|
|
|
|
|
Here ya go. Paste this code into a class and you're all set:
using System;
using System.Linq;
using Microsoft.Win32;
using System.Collections.Generic;
namespace Marois.Common.RegistryProcedures
{
public static class RegistryProcedures
{
#region enum BaseKeys
public enum BaseKey
{
HKEY_CLASSES_ROOT,
HKEY_CURRENT_CONFIG,
HKEY_CURRENT_USER,
HKEY_DYN_DATA,
HKEY_LOCAL_MACHINE,
HKEY_PERFORMANCE_DATA
}
#endregion
#region Method CreateSubkey
public static void CreateSubkey(BaseKey BaseKey, string KeyToAdd)
{
CreateSubkey(BaseKey, "", KeyToAdd);
}
public static void CreateSubkey(BaseKey BaseKey, string SubKey, string KeyToAdd)
{
RegistryKey baseKey;
if (SubKey != "")
baseKey = _GetRegistryBaseKey(BaseKey).OpenSubKey(SubKey, true);
else
baseKey = _GetRegistryBaseKey(BaseKey);
if (baseKey == null && SubKey != "")
{
throw new Exception("Registry subkey not found");
}
else
{
baseKey.CreateSubKey(KeyToAdd);
}
}
#endregion
#region Method DeleteSubkey
public static void DeleteSubkey(BaseKey BaseKey, string SubKey)
{
RegistryKey baseKey = _GetRegistryBaseKey(BaseKey);
baseKey.DeleteSubKey(SubKey);
}
#endregion
#region Method DeleteSubkeyTree
public static void DeleteSubKeyTree(BaseKey BaseKey, string sSubKey)
{
RegistryKey baseKey = _GetRegistryBaseKey(BaseKey);
baseKey.DeleteSubKeyTree(sSubKey);
}
#endregion
#region Method DeleteSubkeyTreeValues
public static void DeleteSubkeyTreeValues(BaseKey BaseKey, string sSubKey)
{
List<string> nodeNames = GetSubKeyNodeNames(BaseKey, sSubKey);
if(nodeNames.Count > 0)
{
RegistryKey baseKey = _GetRegistryBaseKey(BaseKey);
baseKey = baseKey.OpenSubKey(sSubKey, true);
foreach(string nodeName in nodeNames)
{
baseKey.DeleteValue(nodeName);
}
}
}
#endregion
#region Method DeleteValue
private static void DeleteValue(BaseKey BaseKey, string SubKey, string ValueToDelete)
{
RegistryKey baseKey;
if (SubKey != "")
baseKey = _GetRegistryBaseKey(BaseKey).OpenSubKey(SubKey, true);
else
baseKey = _GetRegistryBaseKey(BaseKey);
if (baseKey == null && SubKey != "")
{
throw new Exception("Registry subkey not found");
}
else
{
baseKey.DeleteValue(ValueToDelete);
}
}
#endregion Method DeleteValue
#region Method GetSubkeyNames
public static List<string> GetSubkeyNames(BaseKey BaseKey, string SubKey)
{
List<string> retVal = null;
RegistryKey baseKey;
if (SubKey != "")
baseKey = _GetRegistryBaseKey(BaseKey).OpenSubKey(SubKey);
else
baseKey = _GetRegistryBaseKey(BaseKey);
if (baseKey == null && SubKey != "")
{
throw new Exception("Registry subkey not found");
}
else
{
string[] names = baseKey.GetSubKeyNames();
retVal = (from n in names
select n).ToList();
}
return retVal;
}
#endregion
#region Method GetSubKeyNodeNames
public static List<string> GetSubKeyNodeNames(BaseKey BaseKey, string SubKey)
{
List<string> retVal = null;
RegistryKey baseKey;
if (SubKey != "")
baseKey = _GetRegistryBaseKey(BaseKey).OpenSubKey(SubKey);
else
baseKey = _GetRegistryBaseKey(BaseKey);
if (baseKey == null && SubKey != "")
{
throw new Exception("Registry subkey not found");
}
else
{
string[] names = baseKey.GetValueNames();
retVal = (from n in names
select n).ToList();
}
return retVal;
}
#endregion
#region Method GetSubKeyValue
public static object GetSubKeyValue(BaseKey BaseKey, string SubKey, string Node)
{
object retVal = null;
RegistryKey baseKey;
if (SubKey != "")
baseKey = _GetRegistryBaseKey(BaseKey).OpenSubKey(SubKey);
else
baseKey = _GetRegistryBaseKey(BaseKey);
if (baseKey == null && SubKey != "")
{
throw new Exception("Registry subkey not found");
}
else
{
retVal = baseKey.GetValue(Node);
}
return retVal;
}
#endregion
#region Method SetKeyValue
public static void SetKeyValue(BaseKey BaseKey, string SubKey, string NodeName, string Value)
{
RegistryKey baseKey = _GetRegistryBaseKey(BaseKey);
baseKey = baseKey.OpenSubKey(SubKey, true);
if (baseKey == null && SubKey != "")
{
throw new Exception("Registry subkey not found");
}
else
{
baseKey.SetValue(NodeName, Value);
}
}
public static void SetKeyValue(BaseKey BaseKey, string SubKey, string NodeName, int Value)
{
RegistryKey baseKey = _GetRegistryBaseKey(BaseKey);
baseKey = baseKey.OpenSubKey(SubKey, true);
if (baseKey == null && SubKey != "")
{
throw new Exception("Registry subkey not found");
}
else
{
baseKey.SetValue(NodeName, Value);
}
}
#endregion
#region Method _GetRegistryBaseKey
private static RegistryKey _GetRegistryBaseKey(BaseKey BaseKey)
{
RegistryKey key = null; ;
switch (BaseKey)
{
case BaseKey.HKEY_CLASSES_ROOT:
key = Registry.ClassesRoot;
break;
case BaseKey.HKEY_CURRENT_CONFIG:
key = Registry.CurrentConfig;
break;
case BaseKey.HKEY_CURRENT_USER:
key = Registry.CurrentUser;
break;
case BaseKey.HKEY_DYN_DATA:
key = Registry.DynData;
break;
case BaseKey.HKEY_LOCAL_MACHINE:
key = Registry.LocalMachine;
break;
case BaseKey.HKEY_PERFORMANCE_DATA:
key = Registry.PerformanceData;
break;
}
return key;
}
#endregion
}
}
Everything makes sense in someone's mind
|
|
|
|
|
I have a ListView control with 4 columns set to details view. I have implemented a column sort so the user can click a column header and resort the ListView on the desired column. The default sort is column 0.
When the default view is displayed, the user can give the ListView focus, start typing, and ListView will automatically scroll the list finding matches to what is typed. Perfect!
My problem is, when they change the sort column to some other column other than the first. Typing always searches the first column only.
Does anybody know if I can change what column is searched when the keyboard is typed on a ListView control? If so, how?
|
|
|
|
|
Hi, guys .
I write a simple application for drawing a vector primitives such a ellipse, line, rectangle, polygon, etc. I want to add a class for a new shape - ellipse with two lines in it, but I'm stuck on this . Can you give me some help?
This is the code of my Ellipse class:
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Drawing.Drawing2D;
namespace _2D_Vector_Graphics
{
[Serializable]
class EllipseShape : Shape
{
public RectangleF SetLocation
{
set
{
this.Location = value.Location;
this.ModelSize = value.Size;
}
}
public EllipseShape()
{
this.ModelSize = new SizeF(0, 0);
this.Location = new PointF(-10, -10);
this.selectionUnit = new CoveringRectangle(Rectangle.Round(ReturnBounds()));
}
public EllipseShape(Color newFillColor, Color newBorderColor, int newBorderWidth, SizeF newModelSize, PointF newlocation)
{
this.FillColor = newFillColor;
this.BorderColor = newBorderColor;
this.BorderWidth = newBorderWidth;
this.ModelSize = newModelSize;
this.selectionUnit = new CoveringRectangle(Rectangle.Round(ReturnBounds()));
}
public override void DrawYourSelf(Graphics graphics)
{
GraphicsPath path=new GraphicsPath();
path.AddEllipse(new RectangleF(Location, ModelSize));
path.Transform(this.TMatrix.TransformationMatrix);
Pen pen = new Pen(this.BorderColor, this.BorderWidth);
if (IS_FILLED)
{
SolidBrush brush = new SolidBrush(this.FillColor);
graphics.FillPath(brush, path);
}
graphics.DrawPath(pen,path);
if (this.Selected)
{
this.selectionUnit = new CoveringRectangle(Rectangle.Round(ReturnBounds()));
this.selectionUnit.DrawYourSelf(graphics);
}
}
public override RectangleF ReturnBounds()
{
GraphicsPath path = new GraphicsPath();
path.AddEllipse(new RectangleF(Location, ModelSize));
path.Transform(this.TMatrix.TransformationMatrix);
return path.GetBounds();
}
}
}
And this is the code of my Line class:
using System;
using System.Collections.Generic;
using System.Collections;
using System.Drawing;
using System.Drawing.Drawing2D;
namespace _2D_Vector_Graphics
{
[Serializable]
class LineShape : Shape
{
protected Point begin,end;
public Point SetBegin
{
set
{
begin= value ;
}
}
public Point SetEnd
{
set
{
end = value;
}
}
public LineShape()
{
this.selectionUnit = new CoveringRectangle(Rectangle.Round(ReturnBounds()));
}
public LineShape(Point begin, Point end)
{
this.begin = begin;
this.end = end;
this.selectionUnit = new CoveringRectangle(Rectangle.Round(ReturnBounds()));
}
public LineShape(Point begin, Point end, Color newBorderColor, int newBorderWidth)
{
this.begin = begin;
this.end = end;
this.BorderColor = newBorderColor;
this.BorderWidth = newBorderWidth;
this.selectionUnit = new CoveringRectangle(Rectangle.Round(ReturnBounds()));
}
public override void DrawYourSelf(Graphics graphics)
{
GraphicsPath path = new GraphicsPath();
path.AddLine(begin,end);
path.Transform(this.TMatrix.TransformationMatrix);
Pen pen = new Pen(this.BorderColor, this.BorderWidth);
graphics.DrawPath(pen, path);
if (this.Selected)
{
this.selectionUnit = new CoveringRectangle(Rectangle.Round(ReturnBounds()));
this.selectionUnit.DrawYourSelf(graphics);
}
}
public override RectangleF ReturnBounds()
{
GraphicsPath path = new GraphicsPath();
path.AddLine(begin, end);
path.Transform(this.TMatrix.TransformationMatrix);
return path.GetBounds();
}
}
}
|
|
|
|
|
You have an ellipse class and a line class, so you have everything you need to work with.
If you want an ellipse with two lines in it as a separate object, simply create a new third class that has an ellipse and 2 line objects as members and simply iterate over the 3 objects in the DrawYourself method.
You'll have to do some min/max calculations to do the ReturnBounds method, but that would be how I would approach it.
I wasn't, now I am, then I won't be anymore.
|
|
|
|
|
Can you show me with some code how to do because I could not do it.
|
|
|
|
|
Did you write the code above? Because if you did, you would know very easily how to do this.
If this is a homework assignment of some kind, then you need to make an honest attempt.
Try writing a new class as I described above and then ask questions based on that. You'll get loads of support here if you approach it that way. Asking us to simply give you the answer teaches you nothing and at some point, some senior dev out there who will mentor you in the workforce later on will curse us for doing so if we did.
I wasn't, now I am, then I won't be anymore.
|
|
|
|
|
Hi,
I am building a simple windows phone 7 app. I need to pass more that one data item between pages. I know you need to make a small change to sending one data item across but im not sure what this change is. Currently I send one item across like this:
phoneApplicationPage.NavigationService.Navigate(new Uri("/Pages/View_Stickies.xaml?string=" + info, UriKind.RelativeOrAbsolute));
Where in this case info is the string sent.
I unpack it on page 2 like this:
protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
if (this.NavigationContext.QueryString.ContainsKey("string"))
{
string GPS = this.NavigationContext.QueryString["string"];
MessageBox.Show(GPS);
}
base.OnNavigatedTo(e);
}
Im sure there is a very simple answer to the question and any help would be great.
Thanks
|
|
|
|
|
As you are passing a query string across, all you need to do is add the second key value pair after a &, so your example could become:
string.Format("/Pages/View_Stickies.xaml?string={0}&id={1}", info, id)
|
|
|
|
|